Maison >Problème commun >Quel est l'encodage utf-8 ?
UTF-8 est un codage de caractères de longueur variable pour Unicode ; il peut être utilisé pour représenter n'importe quel caractère dans la norme Unicode, et le premier octet de son codage est toujours compatible avec ASCII, ce qui en fait le logiciel original qui processus Les caractères ASCII peuvent continuer à être utilisés sans ou avec seulement des modifications mineures.
UTF-8 (8 bits, Universal Character Set/Unicode Transformation Format) est un codage de caractères de longueur variable pour Unicode. Il peut être utilisé pour représenter n'importe quel caractère de la norme Unicode, et le premier octet de son codage est toujours compatible avec ASCII, de sorte que le logiciel d'origine qui traite les caractères ASCII peut continuer à être utilisé sans ou avec seulement quelques modifications. Par conséquent, il est progressivement devenu le codage préféré pour les e-mails, les pages Web et autres applications qui stockent ou transmettent du texte.
Fonctionnalités de base
Les caractères UCS U+0000 à U+007F (ASCII) sont codés sous forme d'octets 0×00 à 0x7F (compatible ASCIII). Cela signifie que les fichiers contenant uniquement des caractères ASCII 7 bits sont les mêmes dans les codages ASCII et UTF-8.
Tous les caractères UCS supérieurs à 0x007F sont codés sous la forme d'une chaîne de plusieurs octets, chacun avec un ensemble de bits d'indicateur. Par conséquent, il est impossible que les octets ASCII (0x00-0x7F) fassent partie d'autres caractères. Le premier octet d'une chaîne multi-octets représentant un caractère non-ASCII est toujours compris entre 0xC0 et 0XFD et indique le nombre d'octets que contient le caractère. Les octets restants de la chaîne multi-octets sont compris entre 0x80 et 0xBF. Cela rend la resynchronisation très simple et rend les encodages sans frontières et rarement affectés par les octets manquants.
Les caractères codés en UTF-8 peuvent théoriquement avoir une longueur maximale de 6 octets. Cependant, les caractères BMP 16 bits ne peuvent avoir qu'une longueur maximale de 3 octets. L'ordre d'arrangement des chaînes d'octets Bigendian UCS-4 est prédéterminé. 0xFE et OxFF ne sont jamais utilisés dans l'encodage UTF-8.
Nombre d'octets d'encodage
UTF-8 utilise 1 à 4 octets pour encoder chaque caractère :
·Un seul caractère US-ASCIl nécessite 1 codage d'octets (la plage Unicode est U+0000~U+007F).
·Les lettres latines, grecques, cyrilliques, arméniennes, hébraïques, arabes, syriaques et autres lettres avec des signes diacritiques nécessitent un codage sur 2 octets (la plage Unicode est U+ 0080~U+07FF).
·Les caractères dans d'autres langues (y compris les caractères chinois, japonais et coréens, les caractères d'Asie du Sud-Est, les caractères du Moyen-Orient, etc.) incluent les caractères les plus couramment utilisés et utilisent un codage sur 3 octets.
· D'autres caractères de langue rarement utilisés utilisent un codage sur 4 octets.
Règles d'encodage UTF-8 :
S'il n'y a qu'un seul octet, le bit binaire le plus élevé est 0 s'il est multi-octets, le premier octet commence à partir de ; En partant du bit le plus élevé, le nombre de bits binaires consécutifs avec une valeur de 1 détermine le nombre d'octets codés, et les octets restants commencent par 10.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!