GB18030 est unenorme définissant lejeu de caractères officiel de larépublique populaire de Chine (RPC).
Ce jeu de caractères a été publié sous l’appellation officielle « Chinese National Standard GB 18030-2000: Information Technology — Chinese ideograms coded character set for information interchange — Extension for the basic set ».GB est l'abréviation de Guójiā Biāozhǔn (国家标准), qui signifiestandard national en chinois.
Le standard a été publié parChina Standard Press de Pékin (capitale de la république populaire de Chine) le et mis à jour le. Au, le support pour ce jeu de caractères est officiellement (en RPC) obligatoire pour tous les logiciels vendus à un client final de RPC.
La dernière révision, « Chinese National Standard GB 18030-2005: Information technology — Chinese coded character set » a été publiée parChina Standard Press le.Seule la version de 2000 est obligatoire pour la certification de conformité GB 18030 auprès de la Chinese Electronics Standardization Institute (CESI)[1],[2].
GB18030 peut être considéré comme un format de transport d’Unicode (UTF) (c’est-à-dire un codage de tous lespoints de code Unicode) qui maintient la compatibilité avec les jeux de caractères anciens(patrimoniaux). En d'autres termes, il s’agit d'un équivalent chinois de l’UTF-8 (qui maintient la compatibilité avec l’ASCII). Comme l’UTF-8, le GB18030 est un surensemble de l’ASCII et peut représenter la plage de valeur entière despoints de codeUnicode. En raison de son équivalence avec Unicode, le GB18030 supporte les caractères tant duchinois simplifié que duchinois traditionnel.
Le GB18030 conserve également la compatibilité avecGBK (à l’exception dusymbole euro qui est codé sur un seul octet de 0x80 dans la dernière version GBK deMicrosoft et un code de deux octets, A2 E3, en GB18030), qui était le standard de caractères préexistant enrépublique populaire de Chine, dans le but de simplifier la mise à jour des données et des logiciels pour utiliser GB18030. Des parties des données mappées viennent d’une table de recherche (comme dans GBK). Le reste est calculé algorithmiquement. Il hérite également des mauvais aspects des standardslegacy (anciens) sur lesquels il est basé (en particulier, un algorithme spécial est nécessaire pour rechercher des caractères ASCII dans des séquences GB18030).
Beaucoup de sociétés de développement logiciel ont déjà standardisé sur la base d'une version donnée d’Unicode le format de représentation interne de leurs données et appels systèmes. Cependant, la plupart ne supportent que lespoints de code duPMB originellement définis dans la version Unicode 1.0, qui ne supportait que 65536 positions de code et était souvent codée sur 16 bits commeUCS-2.
Dans un changement d’importance historique pour les logiciels conformes à Unicode, larépublique populaire de Chine a décidé d'exiger le support de certainspoints de code en dehors du PMB. Cela signifie que le logiciel ne peut plus continuer à supposer que tous les caractères sont des entités d’une taille fixe de 16 bits (UCS-2). En conséquence, ils doivent soit traiter les données avec des caractères de taille variable (commeUTF-8 ouUTF-16), qui sont les choix les plus communs, soit choisir une largeur fixe plus grande (telle queUCS-4 ouUTF-32). Microsoft a réalisé la migration depuis UCS-2 vers UTF-16 avecWindows 2000.
La police de caractèresSimSun 18030 permet l’affichage des caractères GB 18030, qui reprend tous les caractères d’Unicode 2.1 plus de nouveaux caractères qui se trouvent dans le bloc Unicode Supplément A aux idéogrammes unifiés CJC[3].
Le schéma de 4 octets peut être pensé comme composé de deux unités, chacune de deux octets. Chaque unité a un format similaire à un caractère GBK de deux octets mais avec une plage de valeur pour le deuxième octet de 0x30-0x39 (codesASCII des chiffres décimaux). Le premier octet est dans la plage 0x81 à 0xFE, comme auparavant. Cela signifie qu’une routine de recherche de caractère sûre pour GBK devrait également être sûre pour GB18030 (de la même manière qu’une recherche orientée octet est raisonnablement sûre pour leEUC).
Cela donne un total de 1 587 600 (126 × 10 × 126 × 10) séquences de 4 octets possibles, qui est pour le moment suffisant pour couvrir les 1 114 112 (17 × 65 536) code points d’Unicode.
Le sujet se complique du fait qu’il n’existe pas de règle simple pour convertir les séquences de 4 octets dans leurpoint de code correspondant. En fait, ces numéros sont alloués de façon séquentielle etgros-boutiste (big-endian)seulement vers les code points Unicode qui ne sont pas mappés d'une quelconque autre manière. Par exemple :
U+00DE (Þ) → 81 30 89 37
U+00DF (ß) → 81 30 89 38
U+00E0 (à) → A8 A4
U+00E1 (á) → A8 A2
U+00E2 (â) → 81 30 89 39
U+00E3 (ã) → 81 30 8A 30
Jeux de caractères de base | ![]() | |
---|---|---|
Codification de fichiers et protocoles | ||
Adaptations de référence |
| |
Équivalences standards | ||
Propriétés et algorithmes |
| |
Transformations | ||
Standards et normes liés |
| |
Mises en œuvre et applications |
Jeux de caractères codés | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Multi-octets |
| ![]() | |||||||||||
8 bits |
| ||||||||||||
7 bits |
| ||||||||||||
Moins de 7 bits | |||||||||||||