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. See
Section 2.4.2, « Options habituelles de configure ».
Depuis MySQL 4.1.1, vous pouvez aussi changer la collation du
jeu de caractères avec l'option
--default-collation lorsque le serveur
démarre. La collation doit être valide pour le jeu de
caractères par défaut. Utilisez la commande SHOW
COLLATION pour déterminer quelles collations sont
disponibles pour chaque jeu de caractères. See
Section 2.4.2, « 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.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
