Support de Unicode
<<<
UTF8 pour les méta-données Compatibilité avec d'autres bases de données
>>>

11 Jeux de caractères et Unicode
 Manuel de Référence MySQL 4.1 : Version Française

Jeux de caractères et collation : généralités
Jeux de caractères et collation dans MySQL
Déterminer le jeu de caractères et la collation par défaut
Opérations affectées par le support de jeux de caractères.
Support de Unicode
->UTF8 pour les méta-données
Compatibilité avec d'autres bases de données
Nouveau format de fichier de configuration de jeux de caractères
Jeux de caractères national
Préparer le passage de version 4.0 en 4.1
Les jeux de caractères et collation supportés par MySQL.

11.6 UTF8 pour les méta-données

Les méta-données sont les données sur les données. Tout ce qui décrit la base de données, par opposition au contenu de la base de données, sont des méta-données. Ainsi, les noms de colonnes, les noms de bases de données, les noms d'utilisateur, les noms de version et la plupart des résultats chaînes de SHOW , sont des méta-données.

Toutes les méta-données doivent être dans le même jeu de caractères. Sinon SHOW ne fonctionnerait pas correctement, car des lignes différentes de la même colonne seraient dans des jeux de caractères différents.

D'autre part, les méta-données doivent inclure tous les caractères de toutes les langues. Sinon, les utilisateurs ne pourraient pas nommer les colonnes et les tables dans leur langue.

Pour atteindre ces deux objectifs, MySQL enregistre les méta-données dans un jeu de caractères Unicode, nommé UTF8. Cela ne causera pas de perturbation si vous n'utilisez jamais de caractères accentués; mais si vous les utilisez, sachez que les méta-données sont en UTF8.

Cela signifie que les fonctions USER() et ses synonymes, SESSION_USER() et SYSTEM_USER() ), CURRENT_USER() , et VERSION() auront le jeu de caractères UTF8 par défaut.

Ceci NE veut PAS dire que les titres des colonnes et les résultats des fonctions DESCRIBE seront en UTF8 par défaut. Lorsque vous dites SELECT column1 FROM t , le nom column1 lui-même sera renvoyé du serveur au client dans le jeu de caractères du client, comme défini par la commande SET NAMES .

Si vous voulez que le serveur affiche les résultats des méta-données dans un jeu de caractères autre que UTF8, alors utilisez SET CHARACTER SET pour forcer le serveur faire la conversion ( Jeux de caractères de connexion et collations ), ou configurez le client pour qu'il fasse la conversion. Il est toujours plus efficace de configurer le client pour qu'il fasse la conversion, mais ce choix ne sera pas toujours possible pour de nombreux clients jusqu'à tard dans le cycle des produits MySQL 4.x.

Si vous utilisez seulement, par exemple, la fonction USER() pour une comparaison ou une assignation dans une seule commande... ne vous inquiétez pas. MySQL fera des conversions automatiques pour vous.


SELECT * FROM Table1 WHERE USER() = latin1_column;
Ceci fonctionnera, car le contenu de latin1_column est automatiquement converti en UTF8 avant la comparaison.

INSERT INTO Table1 (latin1_column) SELECT USER();
Ceci fonctionnera car le contenu de USER() est automatiquement converti en latin1 avant l'assignation. La conversion automatique n'est pas encore complètement implémentée, mais devrait fonctionner correctement dans une version ultérieure.Bien que la conversion automatique ne soit pas un standard SQL, le document de standard SQL dit que chaque jeu de caractères est (en termes de caractères supportés) un "sous-jeu" de l'Unicode.

Comme c'est un principe bien connu que "ce qui s'applique à un superjeu peut s'appliquer à un sous-jeu" nous croyons que la collation d'Unicode peut s'appliquer à des comparaisons avec des chaînes non-Unicode.

Version 4.1.1 NOTE : les fichiers errmsg.txt seront tous en UTF8 à partir de cette version. Les conversions vers le jeu de caractères du client seront automatiques, comme pour les méta-données. De plus, nous pourrions changer le comportement par défaut pour retransmettre des groupes de résultats de méta-données dans un futur proche.

<< UTF8 pour les méta-données >>
Support de Unicode Jeux de caractères et Unicode Compatibilité avec d'autres bases de données