4.6.1 Le jeu de caractères utilisé pour les données et le stockage
Par défaut, MySQL utilise le jeu de caractères ISO-8859-1 (Latin1) avec tri en
accord au Suédois/Finnois. C'est le jeu de caractère le mieux adapté pour les
USA et l'Europe de l'ouest.
Tous les binaires standards MySQL sont compilés avec
--with-extra-charsets=complex
. Cela ajoutera du code à tous les programmes
standards pour qu'ils puissent gérer
latin1
et tous les jeux de
caractères multi-octets compris dans le binaire. Les autres jeux de caractères
seront chargés à partir d'un fichier de définition de jeu si besoin.
Le jeu de caractères détermine quels caractères sont autorisés dans les noms et
comment s'effectuent les tris dans les clauses
ORDER BY
et
GROUP BY
de la commande
SELECT
.
Vous pouvez changer le jeu de caractères avec l'option de démarrage du serveur
--default-character-set
. Les jeux de caractères disponibles dépendent des
options
--with-charset=charset
et
--with-extra-charsets=
list-of-charset | complex | all
de
configure
, et des fichiers de configuration
de jeux de caractères situés dans
SHAREDIR/charsets/Index
.
Les options habituelles de
configure
.
Si vous changez le jeu de caractères lors de l'utilisation de MySQL (ce qui pourra
aussi changer l'ordre de tri), vous devez exécuter
myisamchk -r -q
--set-character-set=charset
sur toutes les tables. Sinon, vos index pourront ne pas
être ordonnés correctement.
Lorsqu'un client se connecte à un serveur MySQL, le serveur envoie le jeu de caractères
utilisé par défaut au client. Le client changera de jeu de caractères pour cette connexion.
Vous devez utiliser
mysql_real_escape_string()
pour protéger les chaînes pour une
requête SQL.
mysql_real_escape_string()
est identique à l'ancienne fonction
mysql_escape_string()
, excepté qu'elle prend le gestionnaire de connexion
MYSQL
en tant que premier paramètre.
Si le client est compilé avec d'autres chemins que ceux où le serveur est installé et que
la personne qui a configuré MySQL n'a pas inclut tous les jeux de caractères dans le binaire
MySQL, vous devez indiquer au client où il peut trouver les jeux de caractères additionnels
dont il aura besoin si le serveur utilise un autre jeu de caractères que le client.
On peut le spécifier en plaçant dans un fichier d'options MySQL :
[client] character-sets-dir=/usr/local/mysql/share/mysql/charsets
|
où le chemin pointe vers le répertoire où les jeux de caractères dynamiques de MySQL
sont stockés.
On peut forcer le client à utiliser un jeu de caractères spécifique en précisant :
[client] default-character-set=character-set-name
|
mais on n'en a normalement jamais besoin.
b Sommaire :
|