Benutzer:Mischa Seipel/CCSID

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Ein CCSID, ausgeschrieben coded character set identifier (kodierter Zeichensatz-Identifikator), ist eine 16-Bit-Zahl, die eine bestimmte Art der Kodierung für eine bestimmte Zeichentabelle darstellt. Nehmen wir zum Beispiel Unicode: Es ist eine Zeichentabelle, die verschiedene Methoden zur Kodierung von Zeichen bietet, wie UTF-8, UTF-16 und UTF-32. Diese Kodierungen können, müssen aber nicht unbedingt, mit einer CCSID-Nummer versehen sein, um anzuzeigen, dass diese spezielle Kodierung verwendet wird.

Unterschied zwischen einer Codepage und einer CCSID

[Bearbeiten | Quelltext bearbeiten]

Die Begriffe Codepage und CCSID werden oft synonym verwendet, obwohl sie nicht dasselbe bedeuten. Eine Codepage kann nur ein Teil dessen sein, was ein CCSID ausmacht. Die folgenden Definitionen von IBM helfen, diesen Punkt zu verdeutlichen:

  • Ein Glyph ist das tatsächliche physische Muster von Pixeln oder Tinte, das auf einem Bildschirm oder Ausdruck erscheint.
  • Ein Zeichen ist ein Konzept, das alle Glyphen umfasst, die mit einem bestimmten Symbol verbunden sind. Zum Beispiel sind "F", "F", "F", "F", "F" und "F" verschiedene Glyphen, die jedoch das gleiche Zeichen verwenden. Verschiedene Modifikatoren (fett, kursiv, unterstrichen, Farbe und Schriftart) ändern nicht die grundlegende Bedeutung des "F".
  • Ein Zeichensatz enthält die Zeichen, die erforderlich sind, damit ein Mensch sinnvoll mit dem Computer interagieren kann. Er gibt nicht an, wie diese Zeichen im Computer dargestellt werden. Auf dieser Ebene werden Zeichen in verschiedene Alphabete (Latein, Arabisch, Hebräisch, Kyrillisch usw.) oder ideografische Gruppen (z.B. Chinesisch, Koreanisch) unterteilt. Dies entspricht einem "Zeichenrepertoire" im Unicode-Kodierungsmodell.
  • Eine Codepage stellt eine bestimmte Zuordnung von Codepunktwerten zu Zeichen dar. Sie entspricht einem "kodierten Zeichensatz" im Unicode-Kodierungsmodell. Ein Codepunkt für ein Zeichen ist die interne Darstellung dieses Zeichens im Computer in einer bestimmten Codepage. Viele Zeichen werden in verschiedenen Codepages durch unterschiedliche Codepunkte dargestellt. Bestimmte Zeichensätze können mit einbyteigen Codepages (die maximal 256 Codepunkte und damit maximal 256 Zeichen haben) ausreichend dargestellt werden, aber viele erfordern mehr als das. Beispiele hierfür sind JIS X 0208 und Unicode.
  • Ein Kodierungsschema ist das Byte-Format einer Codepage. Es ordnet Codepunktwerte Sequenzen von einem oder mehreren Byte-Werten im Computer zu. Zum Beispiel sind UTF-8 und UTF-16BE zwei Kodierungen derselben Unicode-Codepage (sie unterscheiden sich nur darin, wie viele Bytes benötigt werden, um einen bestimmten Unicode-Zeichenwert darzustellen, wie er in diesen Bytes enthalten ist und wie das Vorhandensein von Unicode-Informationen angezeigt wird). In IBMs Zeichendatenrepräsentationsarchitektur (CDRA) wird dies typischerweise mit einem ESID (Encoding Scheme Identifier) dargestellt. EUC und ISO-2022 sind weitere Beispiele für Kodierungsschemata.
  • Ein kodierter Zeichensatz-Identifikator (CCSID) enthält alle Informationen, die erforderlich sind, um die Bedeutung und Darstellung von Zeichen durch verschiedene Verarbeitungs- und Austauschstufen zuzuweisen und zu bewahren. Diese Informationen umfassen immer mindestens eine Codepage, können aber auch mehrere Codepages unterschiedlicher Byte-Längen enthalten. Der CCSID hat auch ein zugehöriges Kodierungsschema, das regelt, wie verschiedene Codepunkte behandelt werden sollen. Dieser Mechanismus erlaubt es einem Programm, bidirektionale Ausrichtung, Zeichenformung (hauptsächlich arabischer Zeichen) und andere komplexe Kodierungsinformationen zu erkennen.

CCSID 932:

Zeichensatz Codepage CCSID Kodierungsschema
01122 00897 897 SBCS
00370 00301 301 DBCS

CCSID 942:

Zeichensatz Codepage CCSID Kodierungsschema
01172 01041 1041 SBCS
00370 00301 301 DBCS

CCSID 5028:

Zeichensatz Codepage CCSID Kodierungsschema
01170 00897 4993 SBCS
00370 00301 301 DBCS

Alle drei dieser Varianten von Shift-JIS CCSIDs sind mehrbyteige Zeichensätze (MBCS): Der Teil des einbyteigen Zeichensatzes (SBCS) ist in jedem CCSID unterschiedlich. Der Teil des doppelbyteigen Zeichensatzes (DBCS) ist in jedem CCSID gleich. CCSID 5028 verwendet eine aktualisierte Codepage 897, die CCSID 4993 genannt wird. CCSID 932 verwendet die ursprüngliche Codepage 897, die CCSID 897 ist. CCSID 942 verwendet einen anderen SBCS als die anderen beiden CCSIDs, nämlich 1041.

Beachten Sie auch, wie CCSID 5028 und 4993 um 4096 (1000 in hexadezimal) vom Vorgänger-CCSID mit demselben Codepage-Identifier abweichen. Dies ist eine übliche Methode, mit der CDRA eine aktualisierte CCSID kennzeichnet.

Es gibt einige Gründe für diese Komplexität:

  • Viele der CCSIDs werden in IBM-Datenbanken wie IBM Db2 verwendet, wo ein Datenbankfeld nur einen SBCS-, DBCS- oder MBCS-String unterstützt. CCSIDs ermöglichen es Programmen, zwischen diesen zu unterscheiden.
  • Wenn Zeichen hinzugefügt oder ersetzt werden, wie z.B. bei der Einführung des Euro-Währungssymbols, kann man erkennen, ob die gespeicherten Strings diese Zeichenänderungen unterstützen oder nicht, da eine andere CCSID verwendet wird. Diese Versionierung ist wichtig für die Integrität der Daten.
  • Es ermöglicht die Wiederverwendung von Ressourcen unter ähnlichen CCSIDs.