GB 18030

Un article de Wikipédia, l'encyclopédie libre.

Unicode
Jeux de caractères
Équivalences normalisées
  • NFC (précomposée)
  • NFD (décomposée)
  • NFKC (compatibilité)
  • NFKD (compatibilité)
Propriétés et algorithmes
Codage
Autres transformations
Applications d'échanges de données

GB18030 est le nom Internet enregistré pour le jeu de caractères officiel de la République populaire de Chine (RPC).

Sommaire

[modifier] Historique

Ce jeu de caractères était anciennement appelé "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 Guojia Biaozhun (国家标准), qui signifie standard national en chinois.

Le standard a été publié par le China Standard Press de Pékin (capitale de la Chine populaire) le 17 mars 2000 et mis à jour le 20 novembre 2000. Au 1er septembre 2001, le support pour ce jeu de caractères est officiellement (en RPC) obligatoire pour tous les logiciels vendus à un client final de RPC.

[modifier] Description

GB18030 peut être considéré comme un format de transport d'Unicode (UTF) (c'est-à-dire un codage de tous les code points 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 des code points Unicode. En raison de son équivalence avec Unicode, le GB18030 supporte les caractères tant du chinois simplifié que du chinois traditionnel.

Le GB18030 conserve également la compatibilité avec GBK (à l'exception du symbole euro qui est codé sur un seul octet de 0x80 dans la dernière version GBK de Microsoft et un code de deux octets, A2 E3, en GB18030) , qui était le caractère standard préexistant en RPC, 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. Malheureusement, il hérite également des mauvais aspects des standards legacy (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 les code points du PMB 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 comme UCS-2.

Dans un changement d'importance historique pour les logiciels conformes à Unicode, la République populaire de Chine a décidé d'offrir le support de certains code points en dehors du BMP. 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 (comme UTF-8 ou UTF-16), qui sont les choix les plus communs, soit choisir une largeur fixe plus grande (telle que UCS-4 ou UTF-32). Microsoft a réalisé la migration depuis UCS-2 vers UTF-16 avec Windows 2000.

La police de caractères SimSun 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.

[modifier] Détails techniques

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 (codes ASCII 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 sure pour le GBK devrait également être sure pour le GB18030 (de la même manière qu'une recherche orientée orienté est raisonnablement sure pour le EUC).

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 × 65536) code points d'Unicode.

Malheureusement, le sujet se complique du fait qu'il n'existe pas de règle simple pour convertir les séquences de 4 octets dans leur numéro de code correspondant. En fait, ces numéros sont alloués de façon séquentielle et grand-boutiste 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

[modifier] Voir aussi

[modifier] Articles connexes

[modifier] Liens externes