Computerwissenschaften

Eine Erklärung der Unicode-Zeichenkodierung

Damit ein Computer Text und Zahlen speichern kann, die Menschen verstehen können, muss es einen Code geben, der Zeichen in Zahlen umwandelt . 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 Buchstabe A die Zahl 13, a=14, 1=33, #=123 usw. wird.

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

 

Was ist Unicode?

ASCII (American Standard Code für Information Interchange) war 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 Codierungsschemata zu erstellen, und die Dinge wurden etwas verwirrend. Die Codierungsschemata waren nicht nur unterschiedlich lang, sondern es waren auch Programme erforderlich, um herauszufinden, welches Codierungsschema sie verwenden sollten.

Es stellte sich heraus, dass ein neues Zeichencodierungsschema 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 kann im Unicode-Konsortium eingesehen werden . 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) zum Codieren der Zeichen. 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 nach Unicode werden als Hexadezimalzahlen geschrieben und haben das Präfix U + .

So codieren Sie beispielsweise die zuvor betrachteten Zeichen:

  • A ist U + 0041
  • a 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. Jede Ebene 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 in 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 ♭ 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. Aus diesem Grund 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.

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.