| 1 |
<?xml version="1.0" encoding="ISO-8859-15"?> |
|---|
| 2 |
<!-- Dernière modification |
|---|
| 3 |
le $Date$ |
|---|
| 4 |
par $Author$ |
|---|
| 5 |
révision $Revision$ --> |
|---|
| 6 |
|
|---|
| 7 |
<chapter id="charset"> |
|---|
| 8 |
<title>Localisation</title> |
|---|
| 9 |
|
|---|
| 10 |
<para> |
|---|
| 11 |
Ce chapitre décrit, du point de vue de l'administrateur, les fonctionnalités |
|---|
| 12 |
de régionalisation (ou localisation) disponibles. |
|---|
| 13 |
<productname>PostgreSQL</productname> fournit deux approches |
|---|
| 14 |
différentes pour la gestion de la localisation : |
|---|
| 15 |
|
|---|
| 16 |
<itemizedlist> |
|---|
| 17 |
<listitem> |
|---|
| 18 |
<para> |
|---|
| 19 |
l'utilisation des fonctionnalités de locales du système d'exploitation pour |
|---|
| 20 |
l'ordonnancement du tri, le formatage des chiffres, les messages |
|---|
| 21 |
traduits et autres aspects spécifiques à la locale ; |
|---|
| 22 |
</para> |
|---|
| 23 |
</listitem> |
|---|
| 24 |
|
|---|
| 25 |
<listitem> |
|---|
| 26 |
<para> |
|---|
| 27 |
la fourniture d'un certain nombre d'encodages différents définis dans le |
|---|
| 28 |
serveur <productname>PostgreSQL</productname>, y compris |
|---|
| 29 |
les jeux de caractères multi-octets, pour permettre le stockage de |
|---|
| 30 |
texte dans toutes les langues et fournir la traduction de l'encodage |
|---|
| 31 |
entre serveur et client. |
|---|
| 32 |
</para> |
|---|
| 33 |
</listitem> |
|---|
| 34 |
</itemizedlist> |
|---|
| 35 |
</para> |
|---|
| 36 |
|
|---|
| 37 |
|
|---|
| 38 |
<sect1 id="locale"> |
|---|
| 39 |
<title>Support des locales</title> |
|---|
| 40 |
|
|---|
| 41 |
<indexterm zone="locale"><primary>locale</primary></indexterm> |
|---|
| 42 |
|
|---|
| 43 |
<para> |
|---|
| 44 |
Le support des <firstterm>locales</firstterm> fait référence à une application |
|---|
| 45 |
respectant les préférences culturelles au regard des alphabets, |
|---|
| 46 |
du tri, du format des nombres, etc. <productname>PostgreSQL</productname> utilise |
|---|
| 47 |
les possibilités offertes par C et <acronym>POSIX</acronym> du standard |
|---|
| 48 |
ISO fournies par le système d'exploitation du serveur. Pour plus d'informations, |
|---|
| 49 |
consulter la documentation du système. |
|---|
| 50 |
</para> |
|---|
| 51 |
|
|---|
| 52 |
<sect2> |
|---|
| 53 |
<title>Aperçu</title> |
|---|
| 54 |
|
|---|
| 55 |
<para> |
|---|
| 56 |
Le support des locales est automatiquement déclenché lorsqu'un cluster de |
|---|
| 57 |
base de données est créé avec <command>initdb</command>. |
|---|
| 58 |
<command>initdb</command> initialise le cluster avec la valeur des |
|---|
| 59 |
locales de son environnement d'exécution par défaut. Si le système est |
|---|
| 60 |
déjà paramétré pour utiliser la locale souhaitée pour le cluster, il n'y |
|---|
| 61 |
a donc rien d'autre à faire. Si une locale différente est souhaitée (ou |
|---|
| 62 |
que celle utilisée par le serveur n'est pas connue avec certitude), il |
|---|
| 63 |
est possible d'indiquer à <command>initdb</command> la locale à |
|---|
| 64 |
utiliser à l'aide de l'option <option>--locale</option>. |
|---|
| 65 |
Par exemple : |
|---|
| 66 |
<screen>initdb --locale=sv_SE</screen> |
|---|
| 67 |
</para> |
|---|
| 68 |
|
|---|
| 69 |
<para> |
|---|
| 70 |
Cet exemple positionne la locale au suédois (<literal>sv</literal>) tel que parlé en |
|---|
| 71 |
Suède (<literal>SE</literal>). Parmi les autres possibilités, on peut |
|---|
| 72 |
envisager <literal>en_US</literal> (l'anglais américain) ou |
|---|
| 73 |
<literal>fr_CA</literal> (français canadien). Si plusieurs encodages |
|---|
| 74 |
s'avèrent utiles pour une même locale, alors l'indication peut |
|---|
| 75 |
ressembler à : <literal>cs_CZ.ISO8859-2</literal>. Les locales |
|---|
| 76 |
disponibles et leurs noms dépendent de l'éditeur du système d'exploitation |
|---|
| 77 |
et de ce qui est installé (sur la plupart des systèmes, la commande |
|---|
| 78 |
<literal>locale -a</literal> fournit la liste des locales disponibles). |
|---|
| 79 |
</para> |
|---|
| 80 |
|
|---|
| 81 |
<para> |
|---|
| 82 |
Il est parfois utile de mélanger les règles de plusieurs |
|---|
| 83 |
locales, par exemple d'utiliser les règles de tri anglais avec des messages en |
|---|
| 84 |
espagnol. Pour cela, des sous-catégories de locales existent |
|---|
| 85 |
qui ne contrôlent qu'un aspect particulier des règles de localisation : |
|---|
| 86 |
|
|---|
| 87 |
<informaltable> |
|---|
| 88 |
<tgroup cols="2"> |
|---|
| 89 |
<colspec colnum="1" colwidth="0.4*"/> |
|---|
| 90 |
<colspec colnum="2" colwidth="1.6*"/> |
|---|
| 91 |
<tbody> |
|---|
| 92 |
<row> |
|---|
| 93 |
<entry><envar>LC_COLLATE</envar></entry> |
|---|
| 94 |
<entry>Ordre de tri des chaînes de caractères</entry> |
|---|
| 95 |
</row> |
|---|
| 96 |
<row> |
|---|
| 97 |
<entry><envar>LC_CTYPE</envar></entry> |
|---|
| 98 |
<entry>Classification de caractères (Qu'est-ce qu'une lettre ? |
|---|
| 99 |
La majuscule équivalente ?)</entry> |
|---|
| 100 |
</row> |
|---|
| 101 |
<row> |
|---|
| 102 |
<entry><envar>LC_MESSAGES</envar></entry> |
|---|
| 103 |
<entry>Langue des messages</entry> |
|---|
| 104 |
</row> |
|---|
| 105 |
<row> |
|---|
| 106 |
<entry><envar>LC_MONETARY</envar></entry> |
|---|
| 107 |
<entry>Formatage des valeurs monétaires</entry> |
|---|
| 108 |
</row> |
|---|
| 109 |
<row> |
|---|
| 110 |
<entry><envar>LC_NUMERIC</envar></entry> |
|---|
| 111 |
<entry>Formatage des nombres</entry> |
|---|
| 112 |
</row> |
|---|
| 113 |
<row> |
|---|
| 114 |
<entry><envar>LC_TIME</envar></entry> |
|---|
| 115 |
<entry>Formatage des dates et heures</entry> |
|---|
| 116 |
</row> |
|---|
| 117 |
</tbody> |
|---|
| 118 |
</tgroup> |
|---|
| 119 |
</informaltable> |
|---|
| 120 |
|
|---|
| 121 |
Les noms des catégories se traduisent en noms d'options |
|---|
| 122 |
<command>initdb</command> pour surcharger le choix de locale |
|---|
| 123 |
pour une catégorie donnée. Par exemple, pour utiliser la locale |
|---|
| 124 |
français canadien avec des règles américaines pour le |
|---|
| 125 |
formatage monétaire, on utilise |
|---|
| 126 |
<literal>initdb --locale=fr_CA --lc-monetary=en_US</literal>. |
|---|
| 127 |
</para> |
|---|
| 128 |
|
|---|
| 129 |
<para> |
|---|
| 130 |
Pour bénéficier d'un système qui se comporte comme s'il ne disposait pas du |
|---|
| 131 |
support des locales, on utilise les locales spéciales <literal>C</literal> ou |
|---|
| 132 |
<literal>POSIX</literal>. |
|---|
| 133 |
</para> |
|---|
| 134 |
|
|---|
| 135 |
<para> |
|---|
| 136 |
La nature de certaines catégories de locales oblige à les fixer pour la |
|---|
| 137 |
durée de vie d'un cluster. C'est-à-dire qu'une fois |
|---|
| 138 |
qu'<command>initdb</command> à été lancé, elles ne peuvent plus être |
|---|
| 139 |
modifiées. <literal>LC_COLLATE</literal> et <literal>LC_CTYPE</literal> |
|---|
| 140 |
sont de |
|---|
| 141 |
cette catégorie. Elles affectent l'ordre de tri des index et doivent donc |
|---|
| 142 |
rester inchangées, les index sur les colonnes de texte risquant d'être |
|---|
| 143 |
corrompus dans le cas contraire. <productname>PostgreSQL</productname> |
|---|
| 144 |
s'en assure en enregistrant les valeurs de <envar>LC_COLLATE</envar> et |
|---|
| 145 |
<envar>LC_CTYPE</envar> vues par <command>initdb</command>. Le serveur |
|---|
| 146 |
adopte automatiquement ces deux valeurs au démarrage. |
|---|
| 147 |
</para> |
|---|
| 148 |
|
|---|
| 149 |
<para> |
|---|
| 150 |
Les autres catégories de locale peuvent être modifiées au démarrage du |
|---|
| 151 |
serveur en fixant les variables d'environnement de même nom (voir la |
|---|
| 152 |
<xref linkend="runtime-config-client-format"/> pour de plus amples |
|---|
| 153 |
détails). Les valeurs par défaut choisies par |
|---|
| 154 |
<command>initdb</command> sont en fait écrites dans le fichier de |
|---|
| 155 |
configuration <filename>postgresql.conf</filename> pour servir de |
|---|
| 156 |
valeurs par défaut au démarrage du serveur. Si ces déclarations sont |
|---|
| 157 |
supprimées du fichier <filename>postgresql.conf</filename>, le serveur |
|---|
| 158 |
hérite des paramètres de son environnement d'exécution. |
|---|
| 159 |
</para> |
|---|
| 160 |
|
|---|
| 161 |
<para> |
|---|
| 162 |
Le comportement des locales du serveur est déterminé par les |
|---|
| 163 |
variables d'environnement vues par le serveur, pas par celles de |
|---|
| 164 |
l'environnement d'un quelconque client. Il est donc important de |
|---|
| 165 |
configurer les bons paramètres de locales avant le démarrage du serveur. |
|---|
| 166 |
Cela a pour conséquence que, si les locales du client et du serveur |
|---|
| 167 |
diffèrent, les messages peuvent apparaître dans des langues différentes |
|---|
| 168 |
en fonction de leur provenance. |
|---|
| 169 |
</para> |
|---|
| 170 |
|
|---|
| 171 |
<note> |
|---|
| 172 |
<para> |
|---|
| 173 |
Hériter la locale de l'environnement d'exécution signifie, sur la |
|---|
| 174 |
plupart des systèmes d'exploitation, la chose suivante : |
|---|
| 175 |
pour une catégorie de locales donnée (l'ordonnancement par exemple) |
|---|
| 176 |
les variables d'environnement <envar>LC_ALL</envar>, |
|---|
| 177 |
<envar>LC_COLLATE</envar> (la variable qui correspond à la catégorie) |
|---|
| 178 |
et <envar>LANG</envar> sont consultées dans cet ordre jusqu'à en |
|---|
| 179 |
trouver une qui est fixée. Si aucune de ces variables n'est fixée, |
|---|
| 180 |
c'est la locale par défaut, <literal>C</literal>, qui est utilisée. |
|---|
| 181 |
</para> |
|---|
| 182 |
|
|---|
| 183 |
<para> |
|---|
| 184 |
Certaines bibliothèques de localisation regardent aussi la variable |
|---|
| 185 |
d'environnement <envar>LANGUAGE</envar> qui surcharge tout autre |
|---|
| 186 |
paramètre pour fixer la langue des messages. En cas de doute, |
|---|
| 187 |
lire la documentation du système d'exploitation, |
|---|
| 188 |
en particulier la partie concernant <application>gettext</application>. |
|---|
| 189 |
</para> |
|---|
| 190 |
</note> |
|---|
| 191 |
|
|---|
| 192 |
<para> |
|---|
| 193 |
Pour permettre la traduction des messages dans la langue préférée de |
|---|
| 194 |
l'utilisateur, <acronym>NLS</acronym> doit avoir été activé pendant la |
|---|
| 195 |
compilation. Ce choix est indépendant du support d'autres locales. |
|---|
| 196 |
</para> |
|---|
| 197 |
</sect2> |
|---|
| 198 |
|
|---|
| 199 |
<sect2> |
|---|
| 200 |
<title>Comportement</title> |
|---|
| 201 |
|
|---|
| 202 |
<para> |
|---|
| 203 |
Le paramétrage de la locale influence les fonctionnalités SQL |
|---|
| 204 |
suivantes : |
|---|
| 205 |
|
|---|
| 206 |
<itemizedlist> |
|---|
| 207 |
<listitem> |
|---|
| 208 |
<para> |
|---|
| 209 |
l'ordre de tri dans les requêtes utilisant <literal>ORDER BY</literal> sur des |
|---|
| 210 |
données de type texte ; |
|---|
| 211 |
<indexterm><primary>ORDER BY</primary><secondary>et locales</secondary></indexterm> |
|---|
| 212 |
</para> |
|---|
| 213 |
</listitem> |
|---|
| 214 |
|
|---|
| 215 |
<listitem> |
|---|
| 216 |
<para> |
|---|
| 217 |
la possibilité d'utiliser des index avec les clauses |
|---|
| 218 |
<literal>LIKE</literal> ; |
|---|
| 219 |
<indexterm><primary>LIKE</primary><secondary>et locales</secondary></indexterm> |
|---|
| 220 |
</para> |
|---|
| 221 |
</listitem> |
|---|
| 222 |
|
|---|
| 223 |
<listitem> |
|---|
| 224 |
<para> |
|---|
| 225 |
les fonctions <function>upper</function>, <function>lower</function> et |
|---|
| 226 |
<function>initcap</function> ; |
|---|
| 227 |
<indexterm><primary>upper</primary><secondary>et locales</secondary></indexterm> |
|---|
| 228 |
<indexterm><primary>lower</primary><secondary>et locales</secondary></indexterm> |
|---|
| 229 |
<indexterm><primary>initcap</primary><secondary>et locales</secondary></indexterm> |
|---|
| 230 |
</para> |
|---|
| 231 |
</listitem> |
|---|
| 232 |
|
|---|
| 233 |
<listitem> |
|---|
| 234 |
<para> |
|---|
| 235 |
la famille de fonctions <function>to_char</function>. |
|---|
| 236 |
<indexterm><primary>to_char</primary><secondary>et locales</secondary></indexterm> |
|---|
| 237 |
</para> |
|---|
| 238 |
</listitem> |
|---|
| 239 |
</itemizedlist> |
|---|
| 240 |
</para> |
|---|
| 241 |
|
|---|
| 242 |
<para> |
|---|
| 243 |
Le support des locales autres que <literal>C</literal> ou |
|---|
| 244 |
<literal>POSIX</literal> dans <productname>PostgreSQL</productname> a |
|---|
| 245 |
pour inconvénient son impact sur les performances. Il ralentit la gestion |
|---|
| 246 |
des caractères et empêche l'utilisation des index ordinaires par |
|---|
| 247 |
<literal>LIKE</literal>. Pour cette raison, il est préférable de |
|---|
| 248 |
n'utiliser les locales qu'en cas de réel besoin. |
|---|
| 249 |
</para> |
|---|
| 250 |
|
|---|
| 251 |
<para> |
|---|
| 252 |
Toutefois, pour permettre à <productname>PostgreSQL</productname> d'utiliser |
|---|
| 253 |
des index avec les clauses <literal>LIKE</literal> et une locale |
|---|
| 254 |
différente de <literal>C</literal>, il existe plusieurs classes |
|---|
| 255 |
d'opérateurs personnalisées. Elles permettent |
|---|
| 256 |
la création d'un index qui réalise une stricte comparaison caractère par |
|---|
| 257 |
caractère, ignorant les règles de comparaison des locales. Se référer à |
|---|
| 258 |
la <xref linkend="indexes-opclass"/> pour plus d'informations. |
|---|
| 259 |
</para> |
|---|
| 260 |
</sect2> |
|---|
| 261 |
|
|---|
| 262 |
<sect2> |
|---|
| 263 |
<title>Problèmes</title> |
|---|
| 264 |
|
|---|
| 265 |
<para> |
|---|
| 266 |
Si le support des locales ne fonctionne pas au regard des explications ci-dessus, |
|---|
| 267 |
il faut vérifier que le support des locales du système d'exploitation est |
|---|
| 268 |
correctement configuré. Pour vérifier les locales installées sur |
|---|
| 269 |
le système, on peut utiliser la commande <literal>locale -a</literal>, |
|---|
| 270 |
si elle est fournie avec le système d'exploitation. |
|---|
| 271 |
</para> |
|---|
| 272 |
|
|---|
| 273 |
<para> |
|---|
| 274 |
Il faut vérifier que <productname>PostgreSQL</productname> utilise |
|---|
| 275 |
effectivement la locale supposée. Les paramètres <envar>LC_COLLATE</envar> et |
|---|
| 276 |
<envar>LC_CTYPE</envar> sont déterminés lors de l'<command>initdb</command> |
|---|
| 277 |
et ne peuvent pas être modifiés sans répéter <command>initdb</command>. |
|---|
| 278 |
D'autres paramètres de locale, y compris <envar>LC_MESSAGES</envar> et |
|---|
| 279 |
<envar>LC_MONETARY</envar>, sont déterminés initialement par |
|---|
| 280 |
l'environnement dans lequel le serveur est lancé mais peuvent être |
|---|
| 281 |
modifiés pendant l'exécution. Pour vérifier le paramétrage |
|---|
| 282 |
de la locale active on utilise la commande <command>SHOW</command>. |
|---|
| 283 |
</para> |
|---|
| 284 |
|
|---|
| 285 |
<para> |
|---|
| 286 |
Le répertoire <filename>src/test/locale</filename> de la distribution |
|---|
| 287 |
source contient une série de tests pour le support des locales dans |
|---|
| 288 |
<productname>PostgreSQL</productname>. |
|---|
| 289 |
</para> |
|---|
| 290 |
|
|---|
| 291 |
<para> |
|---|
| 292 |
Les applications clientes qui gèrent les erreurs en provenance du |
|---|
| 293 |
serveur par l'analyse du texte du message d'erreur vont certainement |
|---|
| 294 |
éprouver des difficultés lorsque les messages du serveur sont dans une langue |
|---|
| 295 |
différente. Les auteurs de telles applications sont |
|---|
| 296 |
invités à utiliser le schéma de code d'erreur à la place. |
|---|
| 297 |
</para> |
|---|
| 298 |
|
|---|
| 299 |
<para> |
|---|
| 300 |
Le maintien de catalogues de traductions de messages nécessitent les |
|---|
| 301 |
efforts permanents de beaucoup de volontaires qui souhaitent voir |
|---|
| 302 |
<productname>PostgreSQL</productname> parler correctement leur langue |
|---|
| 303 |
préférée. Si certains messages dans une langue ne sont pas disponibles ou |
|---|
| 304 |
pas complètement traduits, toute aide est la bienvenue. Pour apporter |
|---|
| 305 |
son aide à ce projet, consulter le <xref linkend="nls"/> ou écrire à |
|---|
| 306 |
la liste de diffusion des développeurs. |
|---|
| 307 |
</para> |
|---|
| 308 |
</sect2> |
|---|
| 309 |
</sect1> |
|---|
| 310 |
|
|---|
| 311 |
|
|---|
| 312 |
<sect1 id="multibyte"> |
|---|
| 313 |
<title>Support des jeux de caractères</title> |
|---|
| 314 |
|
|---|
| 315 |
<indexterm zone="multibyte"><primary>jeu de caractère</primary></indexterm> |
|---|
| 316 |
|
|---|
| 317 |
<para> |
|---|
| 318 |
Le support des jeux de caractères dans <productname>PostgreSQL</productname> |
|---|
| 319 |
permet d'insérer du texte dans différents jeux de caractères (aussi appelés |
|---|
| 320 |
encodages), dont |
|---|
| 321 |
ceux mono-octet tels que la série ISO 8859 et ceux multi-octets tels que |
|---|
| 322 |
<acronym>EUC</acronym> (Extended Unix Code), UTF-8 ou le codage interne Mule. |
|---|
| 323 |
Tous les jeux de caractères supportés peuvent être utilisés de façon |
|---|
| 324 |
transparente par les clients mais certains ne sont pas supportés par le |
|---|
| 325 |
serveur (c'est-à-dire comme encodage du serveur). |
|---|
| 326 |
Le jeu de caractères par défaut est sélectionné pendant l'initialisation |
|---|
| 327 |
du cluster de base de données avec <command>initdb</command>. Ce choix peut |
|---|
| 328 |
être surchargé à la création de la base. Il est donc possible de disposer |
|---|
| 329 |
de bases utilisant chacune un jeu de caractères différent. |
|---|
| 330 |
</para> |
|---|
| 331 |
|
|---|
| 332 |
<para> |
|---|
| 333 |
Il existe, cependant une importante restriction : le jeu de caractère de la base de données |
|---|
| 334 |
doit être compatible avec la variable d'environnement <envar>LC_CTYPE</envar> coté serveur. |
|---|
| 335 |
Quand <envar>LC_CTYPE</envar> est <literal>C</literal> ou <literal>POSIX</literal>, tous |
|---|
| 336 |
les jeux de caractères sont autorisés, mais pour les autres valeurs de <envar>LC_CTYPE</envar> |
|---|
| 337 |
il n'y a qu'un seul jeux de caractères qui fonctionne correctement. |
|---|
| 338 |
Puisque la variable LC_TYPE est figée par la commmande <command>initdb</command>, |
|---|
| 339 |
l'apparente flexibilité apportée par l'utilisation d'encodages différents |
|---|
| 340 |
dans différentes bases de données est plus théorique que réelle, sauf à |
|---|
| 341 |
choisir la locale <literal>C</literal> or <literal>POSIX</literal> |
|---|
| 342 |
(ce qui a pour conséquence de désactiver la gestion des paramètres régionaux). |
|---|
| 343 |
Il est probable que ces mécanismes soient revisités dans une prochaine version |
|---|
| 344 |
de <productname>PostgreSQL</productname>. |
|---|
| 345 |
</para> |
|---|
| 346 |
|
|---|
| 347 |
<sect2 id="multibyte-charset-supported"> |
|---|
| 348 |
<title>Jeux de caractères supportés</title> |
|---|
| 349 |
|
|---|
| 350 |
<para> |
|---|
| 351 |
Le <xref linkend="charset-table"/> présente les jeux de caractères |
|---|
| 352 |
utilisables avec <productname>PostgreSQL</productname>. |
|---|
| 353 |
</para> |
|---|
| 354 |
|
|---|
| 355 |
<table id="charset-table"> |
|---|
| 356 |
<title>Jeux de caractères de <productname>PostgreSQL</productname></title> |
|---|
| 357 |
<tgroup cols="5"> |
|---|
| 358 |
<colspec colnum="1" colwidth="0.8*"/> |
|---|
| 359 |
<colspec colnum="2" colwidth="1.4*"/> |
|---|
| 360 |
<colspec colnum="3" colwidth="1*"/> |
|---|
| 361 |
<colspec colnum="4" colwidth="0.2*"/> |
|---|
| 362 |
<colspec colnum="5" colwidth="0.7*"/> |
|---|
| 363 |
<colspec colnum="6" colwidth="1.1*"/> |
|---|
| 364 |
<thead> |
|---|
| 365 |
<row> |
|---|
| 366 |
<entry>Nom</entry> |
|---|
| 367 |
<entry>Description</entry> |
|---|
| 368 |
<entry>Langue</entry> |
|---|
| 369 |
<entry>Serveur ?</entry> |
|---|
| 370 |
<!-- |
|---|
| 371 |
The Bytes/Char field is populated by looking at the values returned |
|---|
| 372 |
by pg_wchar_table.mblen function for each encoding. |
|---|
| 373 |
--> |
|---|
| 374 |
<entry>Octets/Caractère</entry> |
|---|
| 375 |
<entry>Alias</entry> |
|---|
| 376 |
</row> |
|---|
| 377 |
</thead> |
|---|
| 378 |
<tbody> |
|---|
| 379 |
<row> |
|---|
| 380 |
<entry><literal>BIG5</literal></entry> |
|---|
| 381 |
<entry>Big Five</entry> |
|---|
| 382 |
<entry>Chinois traditionnel</entry> |
|---|
| 383 |
<entry>Non</entry> |
|---|
| 384 |
<entry>1-2</entry> |
|---|
| 385 |
<entry><literal>WIN950</literal>, <literal>Windows950</literal></entry> |
|---|
| 386 |
</row> |
|---|
| 387 |
<row> |
|---|
| 388 |
<entry><literal>EUC_CN</literal></entry> |
|---|
| 389 |
<entry>Code-CN Unix étendu</entry> |
|---|
| 390 |
<entry>Chinois simplifié</entry> |
|---|
| 391 |
<entry>Oui</entry> |
|---|
| 392 |
<entry>1-3</entry> |
|---|
| 393 |
<entry></entry> |
|---|
| 394 |
</row> |
|---|
| 395 |
<row> |
|---|
| 396 |
<entry><literal>EUC_JP</literal></entry> |
|---|
| 397 |
<entry>Code-JP Unix étendu</entry> |
|---|
| 398 |
<entry>Japonais</entry> |
|---|
| 399 |
<entry>Oui</entry> |
|---|
| 400 |
<entry>1-3</entry> |
|---|
| 401 |
<entry></entry> |
|---|
| 402 |
</row> |
|---|
| 403 |
<row> |
|---|
| 404 |
<entry><literal>EUC_JIS_2004</literal></entry> |
|---|
| 405 |
<entry>Code-JP Unix étendu, JIS X 0213</entry> |
|---|
| 406 |
<entry>Japonais</entry> |
|---|
| 407 |
<entry>Oui</entry> |
|---|
| 408 |
<entry>1-3</entry> |
|---|
| 409 |
<entry></entry> |
|---|
| 410 |
</row> |
|---|
| 411 |
<row> |
|---|
| 412 |
<entry><literal>EUC_KR</literal></entry> |
|---|
| 413 |
<entry>Code-KR Unix étendu</entry> |
|---|
| 414 |
<entry>Coréen</entry> |
|---|
| 415 |
<entry>Oui</entry> |
|---|
| 416 |
<entry>1-3</entry> |
|---|
| 417 |
<entry></entry> |
|---|
| 418 |
</row> |
|---|
| 419 |
<row> |
|---|
| 420 |
<entry><literal>EUC_TW</literal></entry> |
|---|
| 421 |
<entry>Code-TW Unix étendu</entry> |
|---|
| 422 |
<entry>Chinois traditionnel, taïwanais</entry> |
|---|
| 423 |
<entry>Oui</entry> |
|---|
| 424 |
<entry>1-3</entry> |
|---|
| 425 |
<entry></entry> |
|---|
| 426 |
</row> |
|---|
| 427 |
<row> |
|---|
| 428 |
<entry><literal>GB18030</literal></entry> |
|---|
| 429 |
<entry>Standard national</entry> |
|---|
| 430 |
<entry>Chinois</entry> |
|---|
| 431 |
<entry>Non</entry> |
|---|
| 432 |
<entry>1-2</entry> |
|---|
| 433 |
<entry></entry> |
|---|
| 434 |
</row> |
|---|
| 435 |
<row> |
|---|
| 436 |
<entry><literal>GBK</literal></entry> |
|---|
| 437 |
<entry>Standard national étendu</entry> |
|---|
| 438 |
<entry>Chinois simplifié</entry> |
|---|
| 439 |
<entry>Non</entry> |
|---|
| 440 |
<entry>1-2</entry> |
|---|
| 441 |
<entry><literal>WIN936</literal>, <literal>Windows936</literal></entry> |
|---|
| 442 |
</row> |
|---|
| 443 |
<row> |
|---|
| 444 |
<entry><literal>ISO_8859_5</literal></entry> |
|---|
| 445 |
<entry>ISO 8859-5, <acronym>ECMA</acronym> 113</entry> |
|---|
| 446 |
<entry>Latin/Cyrillique</entry> |
|---|
| 447 |
<entry>Oui</entry> |
|---|
| 448 |
<entry>1</entry> |
|---|
| 449 |
<entry></entry> |
|---|
| 450 |
</row> |
|---|
| 451 |
<row> |
|---|
| 452 |
<entry><literal>ISO_8859_6</literal></entry> |
|---|
| 453 |
<entry>ISO 8859-6, <acronym>ECMA</acronym> 114</entry> |
|---|
| 454 |
<entry>Latin/Arabe</entry> |
|---|
| 455 |
<entry>Oui</entry> |
|---|
| 456 |
<entry>1</entry> |
|---|
| 457 |
<entry></entry> |
|---|
| 458 |
</row> |
|---|
| 459 |
<row> |
|---|
| 460 |
<entry><literal>ISO_8859_7</literal></entry> |
|---|
| 461 |
<entry>ISO 8859-7, <acronym>ECMA</acronym> 118</entry> |
|---|
| 462 |
<entry>Latin/Grec</entry> |
|---|
| 463 |
<entry>Oui</entry> |
|---|
| 464 |
<entry>1</entry> |
|---|
| 465 |
<entry></entry> |
|---|
| 466 |
</row> |
|---|
| 467 |
<row> |
|---|
| 468 |
<entry><literal>ISO_8859_8</literal></entry> |
|---|
| 469 |
<entry>ISO 8859-8, <acronym>ECMA</acronym> 121</entry> |
|---|
| 470 |
<entry>Latin/Hébreu</entry> |
|---|
| 471 |
<entry>Oui</entry> |
|---|
| 472 |
<entry>1</entry> |
|---|
| 473 |
<entry></entry> |
|---|
| 474 |
</row> |
|---|
| 475 |
<row> |
|---|
| 476 |
<entry><literal>JOHAB</literal></entry> |
|---|
| 477 |
<entry><acronym>JOHAB</acronym></entry> |
|---|
| 478 |
<entry>Koréen (Hangul)</entry> |
|---|
| 479 |
<entry>Non</entry> |
|---|
| 480 |
<entry>1-3</entry> |
|---|
| 481 |
<entry></entry> |
|---|
| 482 |
</row> |
|---|
| 483 |
<row> |
|---|
| 484 |
<entry><literal>KOI8</literal></entry> |
|---|
| 485 |
<entry><acronym>KOI</acronym>8-R(U)</entry> |
|---|
| 486 |
<entry>Cyrillique</entry> |
|---|
| 487 |
<entry>Oui</entry> |
|---|
| 488 |
<entry>1</entry> |
|---|
| 489 |
<entry><literal>KOI8R</literal></entry> |
|---|
| 490 |
</row> |
|---|
| 491 |
<row> |
|---|
| 492 |
<entry><literal>LATIN1</literal></entry> |
|---|
| 493 |
<entry>ISO 8859-1, <acronym>ECMA</acronym> 94</entry> |
|---|
| 494 |
<entry>Europe de l'ouest</entry> |
|---|
| 495 |
<entry>Oui</entry> |
|---|
| 496 |
<entry>1</entry> |
|---|
| 497 |
<entry><literal>ISO88591</literal></entry> |
|---|
| 498 |
</row> |
|---|
| 499 |
<row> |
|---|
| 500 |
<entry><literal>LATIN2</literal></entry> |
|---|
| 501 |
<entry>ISO 8859-2, <acronym>ECMA</acronym> 94</entry> |
|---|
| 502 |
<entry>Europe centrale</entry> |
|---|
| 503 |
<entry>Oui</entry> |
|---|
| 504 |
<entry>1</entry> |
|---|
| 505 |
<entry><literal>ISO88592</literal></entry> |
|---|
| 506 |
</row> |
|---|
| 507 |
<row> |
|---|
| 508 |
<entry><literal>LATIN3</literal></entry> |
|---|
| 509 |
<entry>ISO 8859-3, <acronym>ECMA</acronym> 94</entry> |
|---|
| 510 |
<entry>Europe du sud</entry> |
|---|
| 511 |
<entry>Oui</entry> |
|---|
| 512 |
<entry>1</entry> |
|---|
| 513 |
<entry><literal>ISO88593</literal></entry> |
|---|
| 514 |
</row> |
|---|
| 515 |
<row> |
|---|
| 516 |
<entry><literal>LATIN4</literal></entry> |
|---|
| 517 |
<entry>ISO 8859-4, <acronym>ECMA</acronym> 94</entry> |
|---|
| 518 |
<entry>Europe du nord</entry> |
|---|
| 519 |
<entry>Oui</entry> |
|---|
| 520 |
<entry>1</entry> |
|---|
| 521 |
<entry><literal>ISO88594</literal></entry> |
|---|
| 522 |
</row> |
|---|
| 523 |
<row> |
|---|
| 524 |
<entry><literal>LATIN5</literal></entry> |
|---|
| 525 |
<entry>ISO 8859-9, <acronym>ECMA</acronym> 128</entry> |
|---|
| 526 |
<entry>Turque</entry> |
|---|
| 527 |
<entry>Oui</entry> |
|---|
| 528 |
<entry>1</entry> |
|---|
| 529 |
<entry><literal>ISO88599</literal></entry> |
|---|
| 530 |
</row> |
|---|
| 531 |
<row> |
|---|
| 532 |
<entry><literal>LATIN6</literal></entry> |
|---|
| 533 |
<entry>ISO 8859-10, <acronym>ECMA</acronym> 144</entry> |
|---|
| 534 |
<entry>Nordique</entry> |
|---|
| 535 |
<entry>Oui</entry> |
|---|
| 536 |
<entry>1</entry> |
|---|
| 537 |
<entry><literal>ISO885910</literal></entry> |
|---|
| 538 |
</row> |
|---|
| 539 |
<row> |
|---|
| 540 |
<entry><literal>LATIN7</literal></entry> |
|---|
| 541 |
<entry>ISO 8859-13</entry> |
|---|
| 542 |
<entry>Baltique</entry> |
|---|
| 543 |
<entry>Oui</entry> |
|---|
| 544 |
<entry>1</entry> |
|---|
| 545 |
<entry><literal>ISO885913</literal></entry> |
|---|
| 546 |
</row> |
|---|
| 547 |
<row> |
|---|
| 548 |
<entry><literal>LATIN8</literal></entry> |
|---|
| 549 |
<entry>ISO 8859-14</entry> |
|---|
| 550 |
<entry>Celtique</entry> |
|---|
| 551 |
<entry>Oui</entry> |
|---|
| 552 |
<entry>1</entry> |
|---|
| 553 |
<entry><literal>ISO885914</literal></entry> |
|---|
| 554 |
</row> |
|---|
| 555 |
<row> |
|---|
| 556 |
<entry><literal>LATIN9</literal></entry> |
|---|
| 557 |
<entry>ISO 8859-15</entry> |
|---|
| 558 |
<entry>LATIN1 avec l'Euro et les accents</entry> |
|---|
| 559 |
<entry>Oui</entry> |
|---|
| 560 |
<entry>1</entry> |
|---|
| 561 |
<entry>ISO885915</entry> |
|---|
| 562 |
</row> |
|---|
| 563 |
<row> |
|---|
| 564 |
<entry><literal>LATIN10</literal></entry> |
|---|
| 565 |
<entry>ISO 8859-16, <acronym>ASRO</acronym> SR 14111</entry> |
|---|
| 566 |
<entry>Roumain</entry> |
|---|
| 567 |
<entry>Oui</entry> |
|---|
| 568 |
<entry>1</entry> |
|---|
| 569 |
<entry><literal>ISO885916</literal></entry> |
|---|
| 570 |
</row> |
|---|
| 571 |
<row> |
|---|
| 572 |
<entry><literal>MULE_INTERNAL</literal></entry> |
|---|
| 573 |
<entry>Code interne Mule</entry> |
|---|
| 574 |
<entry>Emacs multi-langues</entry> |
|---|
| 575 |
<entry>Oui</entry> |
|---|
| 576 |
<entry>1-4</entry> |
|---|
| 577 |
<entry></entry> |
|---|
| 578 |
</row> |
|---|
| 579 |
<row> |
|---|
| 580 |
<entry><literal>SJIS</literal></entry> |
|---|
| 581 |
<entry>Shift JIS</entry> |
|---|
| 582 |
<entry>Japonais</entry> |
|---|
| 583 |
<entry>Non</entry> |
|---|
| 584 |
<entry>1-2</entry> |
|---|
| 585 |
<entry><literal>Mskanji</literal>, <literal>ShiftJIS</literal>, <literal>WIN932</literal>, <literal>Windows932</literal></entry> |
|---|
| 586 |
</row> |
|---|
| 587 |
<row> |
|---|
| 588 |
<entry><literal>SHIFT_JIS_2004</literal></entry> |
|---|
| 589 |
<entry>Shift JIS, JIS X 0213</entry> |
|---|
| 590 |
<entry>Japonais</entry> |
|---|
| 591 |
<entry>Non</entry> |
|---|
| 592 |
<entry>1-2</entry> |
|---|
| 593 |
<entry></entry> |
|---|
| 594 |
</row> |
|---|
| 595 |
<row> |
|---|
| 596 |
<entry><literal>SQL_ASCII</literal></entry> |
|---|
| 597 |
<entry>non spécifié (voir le texte)</entry> |
|---|
| 598 |
<entry><emphasis>tout</emphasis></entry> |
|---|
| 599 |
<entry>Oui</entry> |
|---|
| 600 |
<entry>1</entry> |
|---|
| 601 |
<entry></entry> |
|---|
| 602 |
</row> |
|---|
| 603 |
<row> |
|---|
| 604 |
<entry><literal>UHC</literal></entry> |
|---|
| 605 |
<entry>Code unifié Hangul</entry> |
|---|
| 606 |
<entry>Koréen</entry> |
|---|
| 607 |
<entry>Non</entry> |
|---|
| 608 |
<entry>1-2</entry> |
|---|
| 609 |
<entry><literal>WIN949</literal>, <literal>Windows949</literal></entry> |
|---|
| 610 |
</row> |
|---|
| 611 |
<row> |
|---|
| 612 |
<entry><literal>UTF8</literal></entry> |
|---|
| 613 |
<entry>Unicode, 8-bit</entry> |
|---|
| 614 |
<entry><emphasis>tous</emphasis></entry> |
|---|
| 615 |
<entry>Oui</entry> |
|---|
| 616 |
<entry>1-4</entry> |
|---|
| 617 |
<entry><literal>Unicode</literal></entry> |
|---|
| 618 |
</row> |
|---|
| 619 |
<row> |
|---|
| 620 |
<entry><literal>WIN866</literal></entry> |
|---|
| 621 |
<entry>Windows CP866</entry> |
|---|
| 622 |
<entry>Cyrillique</entry> |
|---|
| 623 |
<entry>Oui</entry> |
|---|
| 624 |
<entry>1</entry> |
|---|
| 625 |
<entry><literal>ALT</literal></entry> |
|---|
| 626 |
</row> |
|---|
| 627 |
<row> |
|---|
| 628 |
<entry><literal>WIN874</literal></entry> |
|---|
| 629 |
<entry>Windows CP874</entry> |
|---|
| 630 |
<entry>Thai</entry> |
|---|
| 631 |
<entry>Oui</entry> |
|---|
| 632 |
<entry>1</entry> |
|---|
| 633 |
<entry></entry> |
|---|
| 634 |
</row> |
|---|
| 635 |
<row> |
|---|
| 636 |
<entry><literal>WIN1250</literal></entry> |
|---|
| 637 |
<entry>Windows CP1250</entry> |
|---|
| 638 |
<entry>Europe centrale</entry> |
|---|
| 639 |
<entry>Oui</entry> |
|---|
| 640 |
<entry>1</entry> |
|---|
| 641 |
<entry></entry> |
|---|
| 642 |
</row> |
|---|
| 643 |
<row> |
|---|
| 644 |
<entry><literal>WIN1251</literal></entry> |
|---|
| 645 |
<entry>Windows CP1251</entry> |
|---|
| 646 |
<entry>Cyrillique</entry> |
|---|
| 647 |
<entry>Oui</entry> |
|---|
| 648 |
<entry>1</entry> |
|---|
| 649 |
<entry><literal>WIN</literal></entry> |
|---|
| 650 |
</row> |
|---|
| 651 |
<row> |
|---|
| 652 |
<entry><literal>WIN1252</literal></entry> |
|---|
| 653 |
<entry>Windows CP1252</entry> |
|---|
| 654 |
<entry>Europe de l'ouest</entry> |
|---|
| 655 |
<entry>Oui</entry> |
|---|
| 656 |
<entry>1</entry> |
|---|
| 657 |
<entry></entry> |
|---|
| 658 |
</row> |
|---|
| 659 |
<row> |
|---|
| 660 |
<entry><literal>WIN1253</literal></entry> |
|---|
| 661 |
<entry>Windows CP1253</entry> |
|---|
| 662 |
<entry>Grec</entry> |
|---|
| 663 |
<entry>Oui</entry> |
|---|
| 664 |
<entry>1</entry> |
|---|
| 665 |
<entry></entry> |
|---|
| 666 |
</row> |
|---|
| 667 |
<row> |
|---|
| 668 |
<entry><literal>WIN1254</literal></entry> |
|---|
| 669 |
<entry>Windows CP1254</entry> |
|---|
| 670 |
<entry>Turque</entry> |
|---|
| 671 |
<entry>Oui</entry> |
|---|
| 672 |
<entry>1</entry> |
|---|
| 673 |
<entry></entry> |
|---|
| 674 |
</row> |
|---|
| 675 |
<row> |
|---|
| 676 |
<entry><literal>WIN1255</literal></entry> |
|---|
| 677 |
<entry>Windows CP1255</entry> |
|---|
| 678 |
<entry>Hébreux</entry> |
|---|
| 679 |
<entry>Oui</entry> |
|---|
| 680 |
<entry>1</entry> |
|---|
| 681 |
<entry></entry> |
|---|
| 682 |
</row> |
|---|
| 683 |
<row> |
|---|
| 684 |
<entry><literal>WIN1256</literal></entry> |
|---|
| 685 |
<entry>Windows CP1256</entry> |
|---|
| 686 |
<entry>Arabe</entry> |
|---|
| 687 |
<entry>Oui</entry> |
|---|
| 688 |
<entry>1</entry> |
|---|
| 689 |
<entry></entry> |
|---|
| 690 |
</row> |
|---|
| 691 |
<row> |
|---|
| 692 |
<entry><literal>WIN1257</literal></entry> |
|---|
| 693 |
<entry>Windows CP1257</entry> |
|---|
| 694 |
<entry>Baltique</entry> |
|---|
| 695 |
<entry>Oui</entry> |
|---|
| 696 |
<entry>1</entry> |
|---|
| 697 |
<entry></entry> |
|---|
| 698 |
</row> |
|---|
| 699 |
<row> |
|---|
| 700 |
<entry><literal>WIN1258</literal></entry> |
|---|
| 701 |
<entry>Windows CP1258</entry> |
|---|
| 702 |
<entry>Vietnamien</entry> |
|---|
| 703 |
<entry>Oui</entry> |
|---|
| 704 |
<entry>1</entry> |
|---|
| 705 |
<entry><literal>ABC</literal>, <literal>TCVN</literal>, <literal>TCVN5712</literal>, <literal>VSCII</literal></entry> |
|---|
| 706 |
</row> |
|---|
| 707 |
</tbody> |
|---|
| 708 |
</tgroup> |
|---|
| 709 |
</table> |
|---|
| 710 |
|
|---|
| 711 |
<para> |
|---|
| 712 |
Toutes les <acronym>API</acronym> ne supportent pas tous les jeux de caractères de |
|---|
| 713 |
la liste. Le pilote JDBC de <productname>PostgreSQL</productname>, par |
|---|
| 714 |
exemple, ne supporte pas <literal>MULE_INTERNAL</literal>, |
|---|
| 715 |
<literal>LATIN6</literal>, <literal>LATIN8</literal> et |
|---|
| 716 |
<literal>LATIN10</literal>. |
|---|
| 717 |
</para> |
|---|
| 718 |
|
|---|
| 719 |
<para> |
|---|
| 720 |
<literal>SQL_ASCII</literal> se comporte de façon considérablement |
|---|
| 721 |
différente des autres valeurs. Quand le jeu de caractères du |
|---|
| 722 |
serveur est <literal>SQL_ASCII</literal>, le serveur interprète les valeurs |
|---|
| 723 |
des octets 0-127 suivant le standard ASCII alors que les valeurs |
|---|
| 724 |
d'octets 128-255 sont considérées comme des caractères non interprétés. |
|---|
| 725 |
Aucune conversion de codage n'est effectuée avec |
|---|
| 726 |
<literal>SQL_ASCII</literal>. De ce fait, cette valeur ne déclare pas |
|---|
| 727 |
tant un encodage spécifique que l'ignorance de l'encodage. Dans la |
|---|
| 728 |
plupart des cas, si des données non ASCII doivent être traitées, il est |
|---|
| 729 |
déconseillé d'utiliser la valeur <literal>SQL_ASCII</literal> car |
|---|
| 730 |
<productname>PostgreSQL</productname> est alors |
|---|
| 731 |
incapable de convertir ou de valider les caractères non ASCII. |
|---|
| 732 |
</para> |
|---|
| 733 |
</sect2> |
|---|
| 734 |
|
|---|
| 735 |
<sect2> |
|---|
| 736 |
<title>Choisir le jeu de caractères</title> |
|---|
| 737 |
|
|---|
| 738 |
<para> |
|---|
| 739 |
<command>initdb</command> définit le jeu de caractères par défaut |
|---|
| 740 |
pour un cluster. Par exemple, |
|---|
| 741 |
|
|---|
| 742 |
<screen>initdb -E EUC_JP</screen> |
|---|
| 743 |
|
|---|
| 744 |
paramètre le jeu de caractères (encodage) à |
|---|
| 745 |
<literal>EUC_JP</literal> (Extended Unix Code for Japanese). |
|---|
| 746 |
L'option <option>--encoding</option> peut aussi être utilisée à la |
|---|
| 747 |
place de <option>-E</option> (options longues). Si aucune option |
|---|
| 748 |
<option>-E</option> ou <option>--encoding</option> n'est |
|---|
| 749 |
donnée, <command>initdb</command> tente de déterminer l'encodage approprié |
|---|
| 750 |
en fonction de la locale indiquée ou de celle par défaut. |
|---|
| 751 |
</para> |
|---|
| 752 |
|
|---|
| 753 |
<para> |
|---|
| 754 |
Si la locale <literal>C</literal> ou la locale |
|---|
| 755 |
<literal>POSIX</literal> est sélectionnée, il est possible de créer une base de |
|---|
| 756 |
données avec un jeu de caractère différent : |
|---|
| 757 |
|
|---|
| 758 |
<screen>createdb -E EUC_KR korean</screen> |
|---|
| 759 |
|
|---|
| 760 |
Cela crée une base de données appelée <literal>korean</literal> qui |
|---|
| 761 |
utilise le jeu de caractères <literal>EUC_KR</literal>. Un autre moyen de |
|---|
| 762 |
réaliser cela est d'utiliser la commande SQL suivante : |
|---|
| 763 |
|
|---|
| 764 |
<programlisting>CREATE DATABASE korean WITH ENCODING 'EUC_KR';</programlisting> |
|---|
| 765 |
|
|---|
| 766 |
L'encodage de la base de données est conservé dans le catalogue système |
|---|
| 767 |
<literal>pg_database</literal>. Cela est visible à l'aide de |
|---|
| 768 |
l'option <option>-l</option> ou de la commande <command>\l</command> de |
|---|
| 769 |
<command>psql</command>. |
|---|
| 770 |
|
|---|
| 771 |
<screen>$ <userinput>psql -l</userinput> |
|---|
| 772 |
List of databases |
|---|
| 773 |
Database | Owner | Encoding |
|---|
| 774 |
---------------+---------+--------------- |
|---|
| 775 |
euc_cn | t-ishii | EUC_CN |
|---|
| 776 |
euc_jp | t-ishii | EUC_JP |
|---|
| 777 |
euc_kr | t-ishii | EUC_KR |
|---|
| 778 |
euc_tw | t-ishii | EUC_TW |
|---|
| 779 |
mule_internal | t-ishii | MULE_INTERNAL |
|---|
| 780 |
postgres | t-ishii | EUC_JP |
|---|
| 781 |
regression | t-ishii | SQL_ASCII |
|---|
| 782 |
template1 | t-ishii | EUC_JP |
|---|
| 783 |
test | t-ishii | EUC_JP |
|---|
| 784 |
utf8 | t-ishii | UTF8 |
|---|
| 785 |
(9 rows)</screen> |
|---|
| 786 |
</para> |
|---|
| 787 |
|
|---|
| 788 |
<important> |
|---|
| 789 |
<para> |
|---|
| 790 |
Sur la plupart des systèmes d'exploitation modernes, <productname>PostgreSQL</productname> |
|---|
| 791 |
peut déterminer le jeu de caractères impliqué par la variable <envar>LC_CTYPE</envar>, |
|---|
| 792 |
et s'assure que le bon encodage de la base de données est utilisé. |
|---|
| 793 |
Sur les systèmes plus anciens, il est de la responsabilité de |
|---|
| 794 |
l'utilisateur de s'assurer que l'encodage attendu par la locale est bien |
|---|
| 795 |
utilisé. Une erreur à ce niveau risque fort de conduire à un comportement |
|---|
| 796 |
étrange des opérations liées à la locale, tel le tri. |
|---|
| 797 |
</para> |
|---|
| 798 |
|
|---|
| 799 |
<para> |
|---|
| 800 |
<productname>PostgreSQL</productname> autorise les superutilisateurs à créer des bases de données |
|---|
| 801 |
avec le jeu de caractère <literal>SQL_ASCII</literal> même lorsque la variable <envar>LC_CTYPE</envar> |
|---|
| 802 |
n'est pas à <literal>C</literal> ou <literal>POSIX</literal>. |
|---|
| 803 |
Comme indiqué plus haut, |
|---|
| 804 |
<literal>SQL_ASCII</literal> n'impose aucun encodage particulier aux |
|---|
| 805 |
données stockées en base, ce qui rend ce paramétrage vulnérable aux |
|---|
| 806 |
comportements erratiques lors d'opérations liées à la locale. |
|---|
| 807 |
Cette combinaison de paramètres est dépréciée et pourrait un jour être |
|---|
| 808 |
interdite. |
|---|
| 809 |
</para> |
|---|
| 810 |
</important> |
|---|
| 811 |
</sect2> |
|---|
| 812 |
|
|---|
| 813 |
<sect2> |
|---|
| 814 |
<title>Conversion automatique d'encodage entre serveur et client</title> |
|---|
| 815 |
|
|---|
| 816 |
<para> |
|---|
| 817 |
<productname>PostgreSQL</productname> automatise la conversion |
|---|
| 818 |
de jeux de caractères entre client et serveur pour |
|---|
| 819 |
certaines combinaisons de jeux de caractères. Les informations de conversion sont |
|---|
| 820 |
conservées dans le catalogue système <literal>pg_conversion</literal>. |
|---|
| 821 |
<productname>PostgreSQL</productname> est livré avec certaines |
|---|
| 822 |
conversions prédéfinies, conversions listées dans le |
|---|
| 823 |
<xref linkend="multibyte-translation-table"/>. Une nouvelle |
|---|
| 824 |
conversion peut être créée en utilisant la commande SQL |
|---|
| 825 |
<command>CREATE CONVERSION</command>. |
|---|
| 826 |
</para> |
|---|
| 827 |
|
|---|
| 828 |
<table id="multibyte-translation-table"> |
|---|
| 829 |
<title>Conversion de jeux de caractères client/serveur</title> |
|---|
| 830 |
<tgroup cols="2"> |
|---|
| 831 |
<colspec colnum="1" colwidth="0.5*"/> |
|---|
| 832 |
<colspec colnum="2" colwidth="1.5*"/> |
|---|
| 833 |
<thead> |
|---|
| 834 |
<row> |
|---|
| 835 |
<entry>Jeu de caractères serveur</entry> |
|---|
| 836 |
<entry>Jeux de caractères client disponibles</entry> |
|---|
| 837 |
</row> |
|---|
| 838 |
</thead> |
|---|
| 839 |
<tbody> |
|---|
| 840 |
<row> |
|---|
| 841 |
<entry><literal>BIG5</literal></entry> |
|---|
| 842 |
<entry><emphasis>non supporté comme encodage serveur</emphasis> |
|---|
| 843 |
</entry> |
|---|
| 844 |
</row> |
|---|
| 845 |
<row> |
|---|
| 846 |
<entry><literal>EUC_CN</literal></entry> |
|---|
| 847 |
<entry><emphasis>EUC_CN</emphasis>, |
|---|
| 848 |
<literal>MULE_INTERNAL</literal>, |
|---|
| 849 |
<literal>UTF8</literal> |
|---|
| 850 |
</entry> |
|---|
| 851 |
</row> |
|---|
| 852 |
<row> |
|---|
| 853 |
<entry><literal>EUC_JP</literal></entry> |
|---|
| 854 |
<entry><emphasis>EUC_JP</emphasis>, |
|---|
| 855 |
<literal>MULE_INTERNAL</literal>, |
|---|
| 856 |
<literal>SJIS</literal>, |
|---|
| 857 |
<literal>UTF8</literal> |
|---|
| 858 |
</entry> |
|---|
| 859 |
</row> |
|---|
| 860 |
<row> |
|---|
| 861 |
<entry><literal>EUC_KR</literal></entry> |
|---|
| 862 |
<entry><emphasis>EUC_KR</emphasis>, |
|---|
| 863 |
<literal>MULE_INTERNAL</literal>, |
|---|
| 864 |
<literal>UTF8</literal> |
|---|
| 865 |
</entry> |
|---|
| 866 |
</row> |
|---|
| 867 |
<row> |
|---|
| 868 |
<entry><literal>EUC_TW</literal></entry> |
|---|
| 869 |
<entry><emphasis>EUC_TW</emphasis>, |
|---|
| 870 |
<literal>BIG5</literal>, |
|---|
| 871 |
<literal>MULE_INTERNAL</literal>, |
|---|
| 872 |
<literal>UTF8</literal> |
|---|
| 873 |
</entry> |
|---|
| 874 |
</row> |
|---|
| 875 |
<row> |
|---|
| 876 |
<entry><literal>GB18030</literal></entry> |
|---|
| 877 |
<entry><emphasis>non supporté comme encodage serveur</emphasis> |
|---|
| 878 |
</entry> |
|---|
| 879 |
</row> |
|---|
| 880 |
<row> |
|---|
| 881 |
<entry><literal>GBK</literal></entry> |
|---|
| 882 |
<entry><emphasis>non supporté comme encodage serveur</emphasis> |
|---|
| 883 |
</entry> |
|---|
| 884 |
</row> |
|---|
| 885 |
<row> |
|---|
| 886 |
<entry><literal>ISO_8859_5</literal></entry> |
|---|
| 887 |
<entry><emphasis>ISO_8859_5</emphasis>, |
|---|
| 888 |
<literal>KOI8</literal>, |
|---|
| 889 |
<literal>MULE_INTERNAL</literal>, |
|---|
| 890 |
<literal>UTF8</literal>, |
|---|
| 891 |
<literal>WIN866</literal>, |
|---|
| 892 |
<literal>WIN1251</literal> |
|---|
| 893 |
</entry> |
|---|
| 894 |
</row> |
|---|
| 895 |
<row> |
|---|
| 896 |
<entry><literal>ISO_8859_6</literal></entry> |
|---|
| 897 |
<entry><emphasis>ISO_8859_6</emphasis>, |
|---|
| 898 |
<literal>UTF8</literal> |
|---|
| 899 |
</entry> |
|---|
| 900 |
</row> |
|---|
| 901 |
<row> |
|---|
| 902 |
<entry><literal>ISO_8859_7</literal></entry> |
|---|
| 903 |
<entry><emphasis>ISO_8859_7</emphasis>, |
|---|
| 904 |
<literal>UTF8</literal> |
|---|
| 905 |
</entry> |
|---|
| 906 |
</row> |
|---|
| 907 |
<row> |
|---|
| 908 |
<entry><literal>ISO_8859_8</literal></entry> |
|---|
| 909 |
<entry><emphasis>ISO_8859_8</emphasis>, |
|---|
| 910 |
<literal>UTF8</literal> |
|---|
| 911 |
</entry> |
|---|
| 912 |
</row> |
|---|
| 913 |
<row> |
|---|
| 914 |
<entry><literal>JOHAB</literal></entry> |
|---|
| 915 |
<entry><emphasis>JOHAB</emphasis>, |
|---|
| 916 |
<literal>UTF8</literal> |
|---|
| 917 |
</entry> |
|---|
| 918 |
</row> |
|---|
| 919 |
<row> |
|---|
| 920 |
<entry><literal>KOI8</literal></entry> |
|---|
| 921 |
<entry><emphasis>KOI8</emphasis>, |
|---|
| 922 |
<literal>ISO_8859_5</literal>, |
|---|
| 923 |
<literal>MULE_INTERNAL</literal>, |
|---|
| 924 |
<literal>UTF8</literal>, |
|---|
| 925 |
<literal>WIN866</literal>, |
|---|
| 926 |
<literal>WIN1251</literal> |
|---|
| 927 |
</entry> |
|---|
| 928 |
</row> |
|---|
| 929 |
<row> |
|---|
| 930 |
<entry><literal>LATIN1</literal></entry> |
|---|
| 931 |
<entry><emphasis>LATIN1</emphasis>, |
|---|
| 932 |
<literal>MULE_INTERNAL</literal>, |
|---|
| 933 |
<literal>UTF8</literal> |
|---|
| 934 |
</entry> |
|---|
| 935 |
</row> |
|---|
| 936 |
<row> |
|---|
| 937 |
<entry><literal>LATIN2</literal></entry> |
|---|
| 938 |
<entry><emphasis>LATIN2</emphasis>, |
|---|
| 939 |
<literal>MULE_INTERNAL</literal>, |
|---|
| 940 |
<literal>UTF8</literal>, |
|---|
| 941 |
<literal>WIN1250</literal> |
|---|
| 942 |
</entry> |
|---|
| 943 |
</row> |
|---|
| 944 |
<row> |
|---|
| 945 |
<entry><literal>LATIN3</literal></entry> |
|---|
| 946 |
<entry><emphasis>LATIN3</emphasis>, |
|---|
| 947 |
<literal>MULE_INTERNAL</literal>, |
|---|
| 948 |
<literal>UTF8</literal> |
|---|
| 949 |
</entry> |
|---|
| 950 |
</row> |
|---|
| 951 |
<row> |
|---|
| 952 |
<entry><literal>LATIN4</literal></entry> |
|---|
| 953 |
<entry><emphasis>LATIN4</emphasis>, |
|---|
| 954 |
<literal>MULE_INTERNAL</literal>, |
|---|
| 955 |
<literal>UTF8</literal> |
|---|
| 956 |
</entry> |
|---|
| 957 |
</row> |
|---|
| 958 |
<row> |
|---|
| 959 |
<entry><literal>LATIN5</literal></entry> |
|---|
| 960 |
<entry><emphasis>LATIN5</emphasis>, |
|---|
| 961 |
<literal>UTF8</literal> |
|---|
| 962 |
</entry> |
|---|
| 963 |
</row> |
|---|
| 964 |
<row> |
|---|
| 965 |
<entry><literal>LATIN6</literal></entry> |
|---|
| 966 |
<entry><emphasis>LATIN6</emphasis>, |
|---|
| 967 |
<literal>UTF8</literal> |
|---|
| 968 |
</entry> |
|---|
| 969 |
</row> |
|---|
| 970 |
<row> |
|---|
| 971 |
<entry><literal>LATIN7</literal></entry> |
|---|
| 972 |
<entry><emphasis>LATIN7</emphasis>, |
|---|
| 973 |
<literal>UTF8</literal> |
|---|
| 974 |
</entry> |
|---|
| 975 |
</row> |
|---|
| 976 |
<row> |
|---|
| 977 |
<entry><literal>LATIN8</literal></entry> |
|---|
| 978 |
<entry><emphasis>LATIN8</emphasis>, |
|---|
| 979 |
<literal>UTF8</literal> |
|---|
| 980 |
</entry> |
|---|
| 981 |
</row> |
|---|
| 982 |
<row> |
|---|
| 983 |
<entry><literal>LATIN9</literal></entry> |
|---|
| 984 |
<entry><emphasis>LATIN9</emphasis>, |
|---|
| 985 |
<literal>UTF8</literal> |
|---|
| 986 |
</entry> |
|---|
| 987 |
</row> |
|---|
| 988 |
< |
|---|