UTF-8 Introduction
UTF-8 Est une sorte de cible Unicode Codage de caractères de longueur variable pour , Aussi connu sous le nom de code WanGuo .
UTF-8 Avec 1 À 6 Codage des octets UNICODE Caractères .
UTF-8 Règles de codage
S'il n'y a qu'un seul octet, son bit binaire le plus élevé est 0;
Si Multi - octets , Son premier octet commence au BIT le plus élevé , Les valeurs binaires consécutives sont 1 Le nombre d'octets encodés détermine le nombre d'octets encodés , Les autres octets sont 10 Début .
Unicode/UCS-4 | bit Nombre | UTF-8 | byte Nombre | Remarques |
0000~ 007F | 0~7 | 0XXX XXXX | 1 | |
0080~ 07FF | 8~11 | 110X XXXX 10XX XXXX | 2 | |
0800~ FFFF | 12~16 | 1110XXXX 10XX XXXX 10XX XXXX | 3 | Champ d'application de la définition de base :0~FFFF |
1 0000~ 1F FFFF | 17~21 | 1111 0XXX 10XX XXXX 10XX XXXX 10XX XXXX | 4 | Unicode6.1 Définition de la portée :0~10 FFFF |
20 0000~ 3FF FFFF | 22~26 | 1111 10XX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX | 5 | Description : Non. unicode Plage de codage , De UCS-4 Codage Spécifications antérieures UTF-8 Accessible 6 Séquence d'octets , Peut être écrasé 31 Bits ( Limite originale du jeu de caractères universel ). Malgré cela, ,2003 Année 11 Mois UTF-8 Par RFC 3629 Nouvelle spécification , Utiliser uniquement l'original Unicode Zones définies ,U+0000 À U+10FFFF. Selon les spécifications , Ces valeurs d'octets n'apparaîtront pas légalement UTF-8 Dans la séquence |
400 0000~ 7FFF FFFF | 27~31 | 1111 110X 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX | 6 |
UTF-8 Avantages
UTF-8 Le codage peut être lu et écrit rapidement par des opérations de masquage et de déplacement . Lors de la comparaison des chaînes strcmp() Et wcscmp() Même résultat de retour pour , Pour faciliter le tri . Octets FF Et FE In UTF-8 Ne jamais apparaître dans le codage , Pour qu'ils puissent montrer UTF-16 Ou UTF-32 Texte ( Voir BOM) UTF-8 Est indépendant de l'ordre des octets . Son ordre d'octets est le même dans tous les systèmes , Donc il n'a pas vraiment besoin BOM.
UTF-8 Inconvénients
Vous ne pouvez pas UNICODE Le nombre de caractères détermine UTF-8 Nombre d'octets de texte , Parce que UTF-8 C'est un codage de longueur variable. 2 Les octets encodés avec des extensions ASCII Les Jeux de caractères ne nécessitent que 1 Octets de caractères ISO Latin-1 - Oui. UNICODE Sous - ensemble de , Mais non. UTF-8 Sous - ensemble de 8 Bitcharacter UTF-8 Le Code sera email Filtrage de la passerelle , Parce que internet L'information a été conçue à l'origine comme suit: 7 Bits ASCII Code . Il en résulte UTF-7 Codage . UTF-8 Utiliser une valeur dans sa représentation 100xxxxx Est plus susceptible que 50%, Et les implémentations existantes comme ISO 2022, 4873, 6429, Et 8859 Système , Je me trompe. C1 Code de contrôle . Il en résulte UTF-7.5 Codage .