Pourquoi le caractère é codé comme 0xC3 0xA9 en UTF-8?
Si j'écris le caractère é
dans un fichier et je l'ouvre avec un éditeur hexadécimal, je peux voir les octets 0xC3, 0xA9.
De Wikipedia, le premier octet, il est appelé le premier octet, et la seconde, l'octet de fin. 0xC3 c'est un métadonnées octet qui signifie que le caractère c'est codé avec 1 octet, 0xA9, mais la valeur unicode pour é
est 0xE9.
En gros, je veux savoir pourquoi é
il est encodé avec un 0xA9 au lieu de 0xE9. Comment les éditeurs de texte convertir 0xC3A9 à 0xE9? Toute opération de décalage?
OriginalL'auteur Gabriel Llamas | 2012-05-04
Vous devez vous connecter pour publier un commentaire.
Ce qui vous fait penser que 0xC3 est "un métadonnées octet"?
Chaque octets en UTF-8 contient des informations pertinentes sur la codepoint qui est codé.
Le premier octet d'une codé en UTF-8 codepoint contient un marqueur (nombre de grandes 1s) qui indique le nombre total d'octets utilisés pour coder le codepoint(*) et les premiers bits de la réelle codepoint. Tous fuite octets contiennent ensuite une "continuation " marqueur" (les bits
10
) et 6 plus de bits de la codées codepoint.L'article de Wikipédia en UTF-8 a une assez bonne description du processus.
Il y a un codage qui utilise le codepoint valeur directement: UTF-32 (un.k.un UCS-4), qui est fondamentalement "utiliser le codepoint valeur 32 bits valeur"
(*) Le marqueur est en fait très facile: si l'octet commence avec (c'est à dire qu'il est bits les plus significatifs sont)
0
, alors c'est un simple codage octet (c'est à dire un codepoint entre 0 et 127). Si elle commence avec10
, alors c'est une suite d'octets. Si c'est110
,1110
ou11110
puis c'est le début d'une 2-, 3 - ou 4-séquence d'octets, respectivement.111110
et1111110
l'habitude d'être défini en tant que bien, mais ne sont plus valides moderne UTF-8 (car ceux-ci sont seulement nécessaires pour coder les valeurs que sont la garantie de ne jamais être utilisé dans le standard Unicode).é
codé comme 0xC3 0xA9 en UTF-8?stackoverflow.com/a/4177813/107158 qui explique comment faire la carte d'octets UTF-8 0xC3A9 en caractère
é
.OriginalL'auteur Joachim Sauer