Eine Erklärung der Unicode-Zeichenkodierung

click fraud protection

Damit ein Computer Text und Zahlen speichern kann, die Menschen verstehen können, muss es einen Code geben, der sich transformiert Zeichen in Zahlen. Der Unicode-Standard definiert einen solchen Code mithilfe der Zeichencodierung.

Der Grund, warum die Zeichenkodierung so wichtig ist, ist, dass jedes Gerät die gleichen Informationen anzeigen kann. Ein benutzerdefiniertes Zeichencodierungsschema funktioniert möglicherweise hervorragend auf einem Computer. Es treten jedoch Probleme auf, wenn Sie denselben Text an eine andere Person senden. Es wird nicht wissen, wovon Sie sprechen, es sei denn, es versteht auch das Codierungsschema.

Zeichenkodierung

Bei der Zeichenkodierung wird jedem Zeichen, das verwendet werden kann, eine Nummer zugewiesen. Sie können jetzt eine Zeichenkodierung vornehmen.

Zum Beispiel könnte ich sagen, dass der Brief EIN wird die Zahl 13, a = 14, 1 = 33, # = 123 und so weiter.

Hier kommen branchenweite Standards ins Spiel. Wenn die gesamte Computerindustrie dasselbe Zeichencodierungsschema verwendet, kann jeder Computer dieselben Zeichen anzeigen.

instagram viewer

Was ist Unicode?

ASCII (Amerikanischer Standardcode für den Informationsaustausch) wurde das erste weit verbreitete Codierungsschema. Es ist jedoch auf nur 128 Zeichendefinitionen beschränkt. Dies ist in Ordnung für die gängigsten englischen Zeichen, Zahlen und Satzzeichen, für den Rest der Welt jedoch etwas einschränkend.

Natürlich will der Rest der Welt das gleiche Kodierungsschema auch für ihre Charaktere. Für einige Zeit, je nachdem, wo Sie sich befanden, wurde möglicherweise ein anderes Zeichen für denselben ASCII-Code angezeigt.

Am Ende begannen die anderen Teile der Welt, ihre eigenen Kodierungsschemata zu erstellen, und die Dinge wurden etwas verwirrend. Die Codierungsschemata waren nicht nur unterschiedlich lang, sondern auch Programme, um herauszufinden, welches Codierungsschema sie verwenden sollten.

Es stellte sich heraus, dass ein neues Zeichenkodierungsschema erforderlich war, als der Unicode-Standard erstellt wurde. Das Ziel von Unicode ist es, alle verschiedenen Codierungsschemata zu vereinheitlichen, damit die Verwirrung zwischen Computern so weit wie möglich begrenzt werden kann.

Heutzutage definiert der Unicode-Standard Werte für über 128.000 Zeichen und ist auf der Website zu sehen Unicode-Konsortium. Es gibt mehrere Zeichencodierungsformen:

  • UTF-8: Verwendet nur ein Byte (8 Bit), um englische Zeichen zu codieren. Es kann eine Folge von Bytes verwenden, um andere Zeichen zu codieren. UTF-8 wird häufig in E-Mail-Systemen und im Internet verwendet.
  • UTF-16: Verwendet zwei Bytes (16 Bit), um die am häufigsten verwendeten Zeichen zu codieren. Bei Bedarf können die zusätzlichen Zeichen durch ein Paar 16-Bit-Zahlen dargestellt werden.
  • UTF-32: Verwendet vier Bytes (32 Bit), um die Zeichen zu codieren. Es stellte sich heraus, dass mit dem Wachstum des Unicode-Standards eine 16-Bit-Zahl zu klein ist, um alle Zeichen darzustellen. UTF-32 kann jedes Unicode-Zeichen als eine Zahl darstellen.

Hinweis: UTF bedeutet Unicode Transformation Unit.

Codepunkte

Ein Codepunkt ist der Wert, den ein Zeichen im Unicode-Standard angibt. Die Werte gemäß Unicode werden als Hexadezimalzahlen geschrieben und haben das Präfix U +.

So codieren Sie beispielsweise die zuvor betrachteten Zeichen:

  • EIN ist U + 0041
  • ein ist U + 0061
  • 1 ist U + 0031
  • # ist U + 0023

Diese Codepunkte sind in 17 verschiedene Abschnitte unterteilt, die als Ebenen bezeichnet werden und durch die Nummern 0 bis 16 gekennzeichnet sind. Jedes Flugzeug enthält 65.536 Codepunkte. Die erste Ebene, 0, enthält die am häufigsten verwendeten Zeichen und wird als BMP (Basic Multilingual Plane) bezeichnet.

Codeeinheiten

Die Codierungsschemata bestehen aus Codeeinheiten, die verwendet werden, um einen Index für die Position eines Zeichens auf einer Ebene bereitzustellen.

Betrachten Sie UTF-16 als Beispiel. Jede 16-Bit-Nummer ist eine Codeeinheit. Die Codeeinheiten können in Codepunkte umgewandelt werden. Zum Beispiel hat das flache Notensymbol a einen Codepunkt von U + 1D160 und befindet sich auf der zweiten Ebene des Unicode-Standards (Supplementary Ideographic Plane). Es würde unter Verwendung der Kombination der 16-Bit-Codeeinheiten U + D834 und U + DD60 codiert.

Für das BMP sind die Werte der Codepunkte und Codeeinheiten identisch. Dies ermöglicht eine Verknüpfung für UTF-16, die viel Speicherplatz spart. Es muss nur eine 16-Bit-Zahl verwendet werden, um diese Zeichen darzustellen.

Wie verwendet Java Unicode?

Java wurde zu der Zeit erstellt, als im Unicode-Standard Werte für einen viel kleineren Zeichensatz definiert wurden. Damals war man der Meinung, dass 16-Bit mehr als genug wären, um alle Zeichen zu codieren, die jemals benötigt würden. In diesem Sinne wurde Java für die Verwendung von UTF-16 entwickelt. Der char-Datentyp wurde ursprünglich verwendet, um einen 16-Bit-Unicode-Codepunkt darzustellen.

Seit Java SE v5.0 repräsentiert das Zeichen eine Codeeinheit. Die Darstellung von Zeichen in der mehrsprachigen Grundebene macht kaum einen Unterschied, da der Wert der Codeeinheit mit dem Codepunkt übereinstimmt. Dies bedeutet jedoch, dass für die Zeichen auf den anderen Ebenen zwei Zeichen benötigt werden.

Wichtig ist, dass ein einzelner char-Datentyp nicht mehr alle Unicode-Zeichen darstellen kann.

instagram story viewer