5.7 Localisation MySQL et utilisation internationale
5 Administration du serveur
Manuel de Référence MySQL 4.1 : Version Française
. Le jeu de caractères utilisé pour les données et le stockage . Langue des messages d'erreurs . Ajouter un nouveau jeu de caractères ->Le tableau de définition des caractères . Support d'assemblage des chaînes . Support des caractères multi-octets . Problèmes avec les jeux de caractères
|
5.7.4 Le tableau de définition des caractères
to_lower[]
et
to_upper[]
sont de simples tableaux qui contiennent
les caractères minuscules et majuscules correspondant à chaque membre du jeu
de caractère. Par exemple :
to_lower['A'] doit contenir 'a' to_upper['a'] doit contenir 'A'
|
sort_order[]
est une carte indiquant comment les caractères doivent être ordonnés
pour les comparaisons et les tris. Pour beaucoup de jeux de caractères, c'est la même
chose que
to_upper[]
(ce qui signifie que le tri sera insensible à la casse).
MySQL triera les caractères en se basant sur la valeur de
sort_order[caractère]
.
Pour des règles de tri plus compliquées, voyez la discussion suivante sur l'assemblage
des chaînes. Support d'assemblage de chaînes .
ctype[]
est un tableau de valeurs de bit, avec un élément par caractère.
(Notez que
to_lower[]
,
to_upper[]
, et
sort_order[]
sont indexés par la valeur du caractère, mais que
ctype[]
est indexé par la valeur
du caractère + 1. C'est une vielle habitude pour pouvoir gérer
EOF
.)
Vous pouvez trouver les définitions de bitmask suivantes dans
m_ctype.h
:
#define _U 01 /* Majuscule */ #define _L 02 /* Minuscule */ #define _N 04 /* Numérique (nombre) */ #define _S 010 /* Caractère d'espacement */ #define _P 020 /* Ponctuation */ #define _C 040 /* Caractère de contrôle */ #define _B 0100 /* Blanc */ #define _X 0200 /* nombre hexadecimal */
|
L'entrée
ctype[]
de chaque caractère doit être l'union des valeurs de masque
de bits qui décrivent le caractère. Par exemple,
'A'
est un caractère majuscule
(
_U
) autant qu'une valeur hexadécimale (
_X
), et donc
ctype['A'+1]
doit contenir la valeur :
_U + _X = 01 + 0200 = 0201
|
|