Unicode |
---|
Jeux de caractères
|
Équivalences normalisées
|
Propriétés et algorithmes |
Codage
|
Autres transformations
|
Applications d'échanges de données
|
UTF-EBCDIC est un codage de caractères utilisé pour représenter les caractères Unicode. Il est conçu pour être compatible avec l’EBCDIC, de sorte que les applications EBCDIC existantes sur les mainframes puissent accepter et traiter les caractères sans grosse difficulté. Ses avantages pour les systèmes existants basés sur l’EBCDIC sont similaires à ceux de l’UTF-8 pour les systèmes basés sur l’ASCII. Les détails sur la transformation UTF-EBCDIC sont définis dans le Rapport technique Unicode n°16 (UTR #16).
Pour produire la version encodée en UTF-EBCDIC d'une suite de points de code Unicode, une première transformation intermédiaire, similaire à l’UTF-8 (désignée dans les spécifications comme UTF-8-Mod), est d'abord appliquée ; la principale différence entre cette transformation intermédiaire et l’UTF-8 est qu’elle permet de représenter les points de code 0+0080 à U+009F (les caractères de contrôle C1) sur un seul octet, et de continuer à les utiliser en tant que codes de contrôle EBCDIC.
Pour y parvenir, le motif binaire 101xxxxx a été utilisé au lieu de 10xxxxxx pour représenter les octets finals d’une séquence multi-octet représentant un seul point de code. Puisque cela ne laisse que 5 bits significatifs au lieu de 6 pour les octets finals, l’UTF-EBCDIC produira souvent un résultat un peu plus long que celui obtenu avec l’UTF-8, pour les mêmes données d’entrée.
Le rapport technique n°16 stipule que le résultat de la première transformation UTF-8-Mod ne doit pas être utilisée pour les communications entre systèmes.
Quartet haut | Quartet bas (toutes les valeurs sont en hexadécimal) | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
...0 | ...1 | ...2 | ...3 | ...4 | ...5 | ...6 | ...7 | ...8 | ...9 | ...A | ...B | ...C | ...D | ...E | ...F | |
0... | 00 | 01 | 02 | 03 | 37 | 2D | 2E | 2F | 16 | 05 | 15 | 0B | 0C | 0D | 0E | 0F |
1... | 10 | 11 | 12 | 13 | 3C | 3D | 32 | 26 | 18 | 19 | 3F | 27 | 1C | 1D | 1E | 1F |
2... | 40 | 5A | 7F | 7B | 5B | 6C | 50 | 7D | 4D | 5D | 5C | 4E | 6B | 60 | 4B | 61 |
3... | F0 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | 7A | 5E | 4C | 7E | 6E | 6F |
4... | 7C | C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8 | C9 | D1 | D2 | D3 | D4 | D5 | D6 |
5... | D7 | D8 | D9 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | AD | E0 | BD | 5F | 6D |
6... | 79 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 91 | 92 | 93 | 94 | 95 | 96 |
7... | 97 | 98 | 99 | A2 | A3 | A4 | A5 | A6 | A7 | A8 | A9 | C0 | 4F | D0 | A1 | 07 |
8... | 20 | 21 | 22 | 23 | 24 | 25 | 06 | 17 | 28 | 29 | 2A | 2B | 2C | 09 | 0A | 1B |
9... | 30 | 31 | 1A | 33 | 34 | 35 | 36 | 08 | 38 | 39 | 3A | 3B | 04 | 14 | 3E | FF |
A... | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 4A | 51 | 52 | 53 | 54 | 55 | 56 |
B... | 57 | 58 | 59 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 6A | 70 | 71 | 72 | 73 |
C... | 80 | 8A | 8B | 8C | 8D | 8E | 8F | 90 | 9A | 9B | 9C | |||||
D... | 9D | 9E | 9F | A0 | AA | AB | AC | AE | AF | B0 | B1 | B2 | B3 | B4 | B5 | B6 |
E... | B8 | B9 | BA | BB | BC | BE | BF | CA | CB | CC | CD | CE | CF | DA | DB | |
F... | DC | DD | DE | DF | E1 | EA | EB | EC | ED | EE | EF | FA | FB | FC | ||
Notes :
La table montre en italique et petits caractères les entrées correspondantes. |
La transformation intermédiaire précédente laisse les données dans un format basé sur l’ASCII, aussi une transformation réversible de permutation d’octets est opérée sur les séquences d’octets intermédiaires, afin de les rendre aussi proche que possible de l’EBCDIC au moyen d’une table de correspondance.
Toutefois cela n’est possible que pour les positions invariantes de l’EBCDIC, la table de permutation étant basée directement sur la transformation réversible de la version américaine de l’ISO 646 (communément appelée ASCII) en la version américaine de l’EBCDIC : l’UTF-EBCDIC ne définit ni n’utilise aucune autre table de transformation pour les autres versions nationales de l’ISO 646 et de l’EBCDIC.