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.