Wie funktioniert die Unicode-Codierung?

1 Antwort

(Es gibt keine identischen Zeichen in verschiedenen Alphabeten, lediglich Glyphen identischer Form.)

Die BMP enthält die Codepunkte der ersten Unicode-Entwürfe (mit 16 bit breiten Zeichencodes).

Die weiteren Ebenen wurden hinzugefügt, weil die ca. 65.000 Zeichen nicht ausreichen. - Hierfür reicht dann auch U+xxxx nicht mehr aus, man muss dann auf U+xxxxxxxx zurückgreifen. (4 Milliarden Zeichen sollten für die nächste Zeit ausreichen. Danach muss man wieder erweitern.)

UTF-8 ist ein Verfahren, um die bis zu 32 Bit, die zur Darstellung von Zeichen nötig sind, durch einzelne Bytes (à 8 Bit) darzustellen. Im Prinzip ebenso aufgebaut ist UTF-16, nur eben mit 16 Bit breiten "Wörtern". Mehr braucht man normalerweise nicht über UTF-8 zu wissen.

Was von UTF-8 noch interessant ist:

- man sieht jedem Byte an, ob es für sich allein ein Zeichen repräsentiert, ob es ein Mehr-Byte-Zeichen beginnt oder weiter hinten in einem Mehr-Byte-Zeichen steht

- die lexikalische Sortierung von Zeichenketten ist in allen Darstellungen - UTF-8, UT-16, UTF-32 - dieselbe, ohne dass man zusätzliche Umformungen vornehmen muss

- wenn das höchstwertige Bit 0 ist, hat man einen Codepunkt in 1-Byte-Darstellung (0 bis 127)

- ein Codepunkt, der sich nicht mit 7 Bit darstellen lässt, beginnt mit einem Byte, das am Anfang so viele Einsen hat wie die Darstellung Bytes, gefolgt von einer 0; danach kommen die ersten codierenden Bytes.

Ein 2-Byte-Zeichen beginnt also mit einem Byte der Gestalt 110x.xxxx, ein 3-Byte-Zeichne mit 1110.xxxx usw.

Da der Anfang 10... hier sinnlos ist, beginnt jeder Zeichencode entweder mit 0 oder mit 11.

Weitere Bytes beginnen mit 10, gefolgt von 6 codierenden Bits

- Codierungen, für die auch eine gleichwertige kürzere Codierung existiert, sind unzulässig (damit entstehen zwar Lücken in den gültigen Codes, aber die Darstellung ist eindeutig und man hat etwas weniger Mühe, Steuerzeichen abzufangen, insbesondere \, das oft als "Escape"-Zeichen genommen wird)

Woher ich das weiß:Berufserfahrung – Software-Entwickler