Depuis la version 4.1 de MySQL, il y deux nouveaux jeux de caractères pour stocker des données Unicode :
ucs2
, le jeu de caractères Unicode UCS-2.
utf8
, l'encodage UTF-8 du jeu de
caractères Unicode.
En UCS-2 (binary Unicode representation
) chaque
caractère est représenté par un code Unicode de deux octets
avec l'octet le plus significatif en premier. Par exemple :
"LATIN CAPITAL LETTER A" a le code 0x0041 et est stocké comme une
séquence à deux octets 0x00 0x41
. "CYRILLIC
SMALL LETTER YERU" (Unicode 0x044B) est stocké comme une
séquence à deux octets 0x04 0x4B
. Pour les
caractères Unicode et leurs codes veuillez consulter
Unicode Home Page.
Restriction temporaire : UCS-2 ne peut pas (encore) être
utilisé comme jeu de caractères client. Cela signifie que
SET NAMES ucs2
ne fonctionnera pas.
Le jeu de caractères UTF8 (transform Unicode
representation
) est une alternative pour stocker les
données Unicode. il est implémenté selon la RFC 2279. L'idée
du jeu de caractères UTF-8 est que différents caractères
Unicode soient représentés par des séquences de différentes
longueurs.
les lettres, chiffres et caractères de ponctuation latins de base utilisent un octet.
La plupart des lettres européennes et moyen-orientales sont stockées avec une séquence à deux octets : les lettres latines étendues (avec les tildes, macrons, accents graves, aigus et autres accents), cyrilliques, grecques, arméniennes, hébreues, arabes, syriaques et autres.
Les idéographes coréens, chinois et japonais utilisent des séquences à trois octets.
Actuellement, MySQL UTF8 ne supporte pas les séquences à 4 octets.
Conseil : pour économiser de l'espace avec UTF-8, utilisez
VARCHAR
au lieu de CHAR
.
Sinon, MySQL doit réserver 30 octets pour une colonne
CHAR(10) CHARACTER SET utf8
parce que c'est la
longueur maximale à accepter.
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.