| 5.8 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
 . Support des fuseaux horaires avec MySQL
 
 
 | 
  5.8.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 : 
 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
 .)| 
to_lower['A'] doit contenir 'a'to_upper['a'] doit contenir 'A'
 | 
 
Vous pouvez trouver les définitions de bitmask suivantes dans  
m_ctype.h
  :
 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 :| 
#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 */
 | 
 | 
_U + _X = 01 + 0200 = 0201
 | 
 |