Unicode-Text-Converter
Ein Unicode Text Converter hilft dabei, Text und die zugehörigen Zeichencodes gegenüberzustellen. Das ist nützlich, wenn zwei Zeichen gleich aussehen, sich aber beim Kopieren, Suchen oder Verarbeiten unterschiedlich verhalten. Im Folgenden erkläre ich, wie Unicode-Codepunkte notiert werden und warum die Anzahl sichtbarer Zeichen nicht immer mit der technischen Länge eines Textes übereinstimmt.
Was ein Unicode-Codepunkt beschreibt
Unicode ordnet Zeichen sogenannte Codepunkte zu. Üblich ist die Schreibweise U+ mit einer hexadezimalen Zahl: Der Buchstabe A hat beispielsweise den Codepunkt U+0041. Die Hexadezimalzahl 41 entspricht im Dezimalsystem 65.
Ein Codepunkt ist nicht dasselbe wie eine Bytefolge. Erst eine Zeichenkodierung wie UTF-8 legt fest, mit welchen Bytes ein Zeichen gespeichert wird. Die Tabelle zeigt konkrete Beispiele:
| Zeichen | Unicode-Codepunkt | Dezimalwert | UTF-8-Bytes (hexadezimal) | Anzahl Bytes |
|---|---|---|---|---|
| A | U+0041 | 65 | 41 | 1 |
| ä | U+00E4 | 228 | C3 A4 | 2 |
| € | U+20AC | 8.364 | E2 82 AC | 3 |
| 😀 | U+1F600 | 128.512 | F0 9F 98 80 | 4 |
Textlänge berechnen: Zeichen sind nicht gleich Bytes
Für die Zeichenfolge Aä€😀 lassen sich die UTF-8-Bytes aus der Tabelle addieren: 1 + 2 + 3 + 4 = 10 Bytes. Der Text besteht dabei aus vier Unicode-Codepunkten und vier sichtbaren Zeichen. Wer ein Speicherlimit oder die Länge einer Datenübertragung berechnen möchte, muss deshalb wissen, ob Bytes, Codepunkte oder sichtbare Zeichen gemeint sind.
Auch Codepunkte und sichtbare Zeichen fallen nicht immer zusammen. Ein é kann als einzelner Codepunkt U+00E9 vorliegen. Es lässt sich aber auch aus e (U+0065) und einem kombinierenden Akzent (U+0301) zusammensetzen. Beide Varianten können gleich aussehen, bestehen jedoch aus unterschiedlich vielen Codepunkten. Ein Unicode Text Converter kann helfen, solche Unterschiede im Text zu erkennen.
Codepunkte, UTF-8 und HTML-Schreibweisen unterscheiden
Die Schreibweise U+20AC bezeichnet den Codepunkt des Eurozeichens. E2 82 AC sind seine Bytes in UTF-8. In HTML kann dasselbe Zeichen außerdem als Zeichenreferenz € geschrieben werden. Diese Angaben beschreiben unterschiedliche Ebenen: Zeichen, Speicherung und Darstellung im HTML-Quelltext. Bei einer Umwandlung lohnt es sich daher, zuerst zu prüfen, welche dieser Formen benötigt wird.