quelle est la difference entre utf8 et latin1?
quelle est la difference entre utf8 et latin1?
Réponses:
UTF-8 est prêt pour la domination mondiale, pas Latin1 .
Si vous essayez de stocker des caractères non latins comme le chinois, le japonais, l'hébreu, le russe, etc. en utilisant le codage Latin1, ils finiront par être du mojibake . Vous trouverez peut-être le texte d'introduction de cet article utile (et encore plus si vous connaissez un peu Java).
Notez que la prise en charge complète de 4 octets UTF-8 n'a été introduite que dans MySQL 5.5. Avant cette version, il ne va que jusqu'à 3 octets par caractère, pas 4 octets par caractère. Donc, il ne supportait que le plan BMP et pas par exemple le plan Emoji. Si vous voulez un support UTF-8 complet sur 4 octets, mettez à niveau MySQL vers au moins 5.5 ou optez pour un autre SGBDR comme PostgreSQL. Dans MySQL 5.5+, il s'appelle utf8mb4
.
VARBINARY
au lieu de VARCHAR
et décoder / encoder dans le niveau métier, mais c'est piraté. Pensez à poser une nouvelle question, il existe peut-être de meilleures façons.
En latin1, chaque caractère mesure exactement un octet. Dans utf8, un caractère peut être composé de plus d'un octet. Par conséquent, utf8 a plus de caractères que latin1 (et les caractères qu'ils ont en commun ne sont pas nécessairement représentés par la même séquence d'octet / d'octet).
binary
rassembler ...? et lequel est le meilleur pour les champs anglais / numériques: ascii_general_ci
ou ascii_bin
?