CCSID - CCSID

Un CCSID ( identificateur de jeu de caractères codés ) est un nombre de 16 bits qui représente un codage particulier d'une page de codes spécifique . Par exemple, Unicode est une page de code qui a plusieurs formes d'encodage (appelées "transformation"), comme UTF-8 , UTF-16 et UTF-32 , mais qui peuvent ou non être accompagnées d'un numéro CCSID pour indiquer que cet encodage est utilisé.

Différence entre une page de codes et un CCSID

Les termes page de codes et CCSID sont souvent utilisés de manière interchangeable, même s'ils ne sont pas synonymes. Une page de codes peut n'être qu'une partie de ce qui constitue un CCSID. Les définitions suivantes d'IBM aident à illustrer ce point :

  • Un glyphe est le motif physique réel de pixels ou d'encre qui apparaît sur un écran ou une impression.
  • Un caractère est un concept qui couvre tous les glyphes associés à un certain symbole. Par exemple, " F ", " F ", " F ", " F ", " F " et " F " sont tous des glyphes différents, mais utilisent le même caractère. Les divers modificateurs (gras, italique, souligné, couleur et police) ne modifient pas la F essentielle du F.
  • Un jeu de caractères contient les caractères nécessaires pour permettre à un humain particulier d'avoir une interaction significative avec l'ordinateur. Il ne précise pas comment ces caractères sont représentés dans un ordinateur. Ce niveau est le premier à séparer les caractères en divers alphabets (latin, arabe, hébreu, cyrillique, etc.) ou groupes idéographiques (par exemple, chinois, coréen). Il correspond à un "répertoire de caractères" dans le modèle d'encodage Unicode .
  • Une page de codes représente une affectation particulière de valeurs de points de code à des caractères. Il correspond à un "jeu de caractères codés" dans le modèle de codage Unicode. Un point de code pour un caractère est la représentation interne de ce caractère par l'ordinateur dans une page de codes donnée. De nombreux caractères sont représentés par différents points de code dans différentes pages de codes. Certains jeux de caractères peuvent être correctement représentés avec des pages de codes à un octet (qui ont un maximum de 256 points de code, donc un maximum de 256 caractères), mais beaucoup nécessitent plus que cela. Les exemples incluent JIS X 0208 et Unicode .
  • Un schéma de codage est le format d'octet d'une page de codes. Il mappe les valeurs de point de code à des séquences d'un ou plusieurs octets dans un ordinateur. Par exemple, UTF-8 et UTF-16BE sont deux encodages de la même page de codes Unicode. (Variant uniquement dans le nombre d'octets nécessaires pour représenter une valeur de caractère Unicode particulière, comment elle est contenue dans ces octets et comment la présence d'informations Unicode est indiquée.) Pendant ce temps, dans l'architecture de représentation des données de caractères (CDRA) d'IBM, c'est généralement représenté par un ESID (identifiant de schéma de codage). EUC et ISO-2022 sont d'autres exemples de schémas de codage.
  • Un identificateur de jeu de caractères codés ( CCSID ) contient toutes les informations nécessaires pour attribuer et préserver la signification et le rendu des caractères à travers diverses étapes de traitement et d'échange. Ces informations comprennent toujours au moins une page de codes, mais peuvent inclure plusieurs pages de codes de longueurs d'octets différentes. Le CCSID a également un schéma de codage associé qui régit la manière dont les divers points de code doivent être traités. Ce mécanisme permet à un programme de reconnaître l' orientation bidirectionnelle , la mise en forme des caractères (principalement des caractères arabes) et d'autres informations de codage complexes.

Exemples

Les exemples suivants montrent comment certains CCSID sont constitués d'autres CCSID.

CCSID 932
Jeu de caractères Page de codes CCSID Schéma de codage
01122 00897 897 SBCS
00370 00301 301 DBCS
CCSID 942
Jeu de caractères Page de codes CCSID Schéma de codage
01172 01041 1041 SBCS
00370 00301 301 DBCS
CCSID 5028
Jeu de caractères Page de codes CCSID Schéma de codage
01170 00897 4993 SBCS
00370 00301 301 DBCS

Ces trois variantes de CCSID Shift-JIS sont des jeux de caractères multi-octets (MBCS) : la partie jeu de caractères mono-octet (SBCS) de chaque CCSID est différente. La partie jeu de caractères codés sur deux octets (DBCS) est la même dans chaque CCSID. Le CCSID 5028 utilise une page de codes mise à jour 897 appelée CCSID 4993. Le CCSID 932 utilise la page de codes d'origine 897, qui est le CCSID 897. Le CCSID 942 utilise un SBCS différent des deux autres CCSID, qui est 1041.

Notez également comment les CCSID 5028 et 4993 sont différents de 4096 (1000 en hexadécimal) du prédécesseur CCSID avec le même identifiant de page de codes. C'est une manière courante pour CDRA de désigner un CCSID mis à niveau.

Il y a plusieurs raisons à cette complexité :

  • De nombreux CCSID sont utilisés dans les bases de données IBM, comme DB2 , où un champ de base de données ne prend en charge qu'une chaîne SBCS, DBCS ou MBCS. Les CCSID permettent aux programmes de différencier celui qui est utilisé.
  • Lorsque des caractères sont ajoutés ou remplacés, comme l'introduction du signe de l'euro, on peut savoir si les chaînes stockées prennent en charge ou non ces ajouts de caractères car un CCSID différent est utilisé. Cette gestion des versions est importante pour l'intégrité des données.
  • Il permet la réutilisation de ressources parmi des CCSID similaires.

Les références

Liens externes