Unicode ist ein in­ter­na­tio­na­ler Standard zur Codierung, Dar­stel­lung und Ver­ar­bei­tung von Text­zei­chen aus nahezu allen Schrift­sys­te­men der Welt. Jedes Zeichen erhält einen ein­deu­ti­gen Codepunkt, der in ver­schie­de­nen Zei­chen­co­die­run­gen wie UTF-8 oder UTF-16 ge­spei­chert werden kann. Dadurch er­mög­licht Unicode die ein­heit­li­che Dar­stel­lung und Ver­ar­bei­tung von Texten über ver­schie­de­ne Platt­for­men und Sprachen hinweg.

Domain kaufen
Re­gis­trie­ren Sie Ihre perfekte Domain
  • Inklusive 1 SSL-Wildcard-Zer­ti­fi­kat pro Vertrag
  • Inklusive Domain Lock
  • Inklusive Domain Connect für einfache DNS-Ein­rich­tung

Was ist Unicode?

Unicode, das ist die „Uni­ver­sel­le Zei­chen­co­die­rung”, ab­ge­lei­tet vom eng­li­schen Begriff „Universal Character Encoding”. Es handelt sich dabei um einen Standard zum Kodieren von Schrift­zei­chen in Bi­när­dar­stel­lung. Dies er­mög­licht das Speichern und Ver­ar­bei­ten von Texten in digitalen Systemen.

Unicode ist insofern eine Neuerung, dass es nicht an die Formate und Ko­die­run­gen eines einzelnen Alphabets einer be­stimm­ten mensch­li­chen Sprache gebunden ist. Unicode wurde vielmehr mit dem Ziel ge­schaf­fen, als ein­heit­li­cher Standard für die Abbildung sämt­li­cher von Menschen ent­wi­ckel­ter Schrift­sys­te­me und Zeichen zu dienen.

Seit der Ver­öf­fent­li­chung von Unicode 1.0 zum Ende des Jahres 1991 ist der Standard seiner Be­stim­mung gerecht geworden. Unicode wird intern von Browsern und Be­triebs­sys­te­men als ein­heit­li­ches Format verwendet. Mit der vom Unicode Con­sor­ti­um im Jahr 2024 ver­öf­fent­lich­ten Version 16.0 umfasste der Unicode-Standard in­zwi­schen ein Re­per­toire von insgesamt 154.998 Zeichen. Der vom Unicode-Standard ab­ge­deck­te Zei­chen­satz ist voll­stän­dig de­ckungs­gleich mit dem „Universal Coded Character Set“ (UCS), der als ISO/IEC 10646 in­ter­na­tio­nal genormt ist.

Tech­ni­sche Basis für Schrift­zei­chen­ko­die­rung

Zunächst ist es wichtig, zu verstehen, dass alle in einem digitalen System vor­han­de­nen In­for­ma­tio­nen auf einer tieferen Ebene aus endlosen Ketten von Nullen und Einsen bestehen. Man spricht dabei auch von der „Bi­när­dar­stel­lung”. Der Binärcode ist an sich so etwas wie ein Alphabet. Al­ler­dings gibt es im Binärcode nur zwei „Buch­sta­ben”: Nullen und Einsen. Jede Stelle innerhalb einer Sequenz von Nullen und Einsen wird als „Bit“ be­zeich­net.

Der grund­le­gen­de Trick der digitalen In­for­ma­ti­ons­tech­no­lo­gie ist, die Zeichen ver­schie­de­ner Alphabete als Sequenzen von Nullen und Einsen ab­zu­bil­den. So lassen sich Zahlen und Buch­sta­ben kodieren, jedoch auch alle sonstigen un­ter­scheid­ba­ren Zustände. Generell spricht man dabei von „Symbolen”. Je länger die Sequenz von Nullen und Einsen für die Dar­stel­lung eines einzelnen Symbols ist, desto mehr Symbole lassen sich dar­stel­len. Dabei ver­dop­pelt sich die Anzahl der möglichen Symbole mit jedem hin­zu­ge­füg­ten Bit.

Ein konkretes Beispiel: Stellen Sie sich vor, wir hätten binäre „Wörter”, welche zwei Bits lang sind. Dann ließen sich damit vier Zahlen kodieren:

2-Bit-Word Zahl
00 0
01 1
10 2
11 3

Fügen wir ein weiteres Bit am Anfang der Sequenz dazu, ver­dop­pelt sich die Anzahl möglicher Bit-Wörter. Diese bestehen aus den bereits bekannten Bit-Sequenzen, jeweils mit einer vor­an­ge­stell­ten Null oder Eins. Somit können wir acht Zahlen kodieren:

3-Bit-Word Zahl
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
Fakt

Ein 8-Bit-Wort wird als Octet oder Byte be­zeich­net.

Der Ein­fach­heit halber haben wir hier ex­em­pla­risch die Kodierung von Zahlen gezeigt. Dasselbe Prinzip kommt jedoch in digitalen Systemen auch für die Kodierung von Buch­sta­ben oder jeglichen anderen Zeichen und Zuständen zum Tragen. Hier das stark ver­ein­fach­te Beispiel einer Bi­när­ko­die­rung von Buch­sta­ben:

3-Bit-Word Buchstabe
000 A
001 B
010 C

Die grafische Re­prä­sen­ta­ti­on eines Zeichens nennt man Glyphe. Je nach ein­ge­setz­tem Font gibt es un­ter­schied­li­che Glyphen für dasselbe Zeichen, und sogar innerhalb eines Fonts kann es mehrere Varianten für eine Glyphe geben. Denken Sie z.B. an ver­schie­de­ne Gewichte, Ligaturen, Kur­siv­schrift etc. Hier eine er­wei­ter­te Dar­stel­lung, die die Zuordnung vom Zeichen bis zur Glyphe umfasst:

Bi­när­dar­stel­lung De­zi­mal­zahl Kodiertes Zeichen Glyphe
1000001 65 großes „A“ des la­tei­ni­schen Alphabets A
1100001 97 kleines „a“ des la­tei­ni­schen Alphabets a
0110000 48 Arabische Ziffer „0” 0
0111001 57 Arabische Ziffer „9” 9
11000100 196 großes „Ä“ Ä
11000001 193 großes „Á“ Á

Ter­mi­no­lo­gie der Schrift­zei­chen­ko­die­rung

Die digitale Schrift­zei­chen­ko­die­rung umfasst eine Reihe spe­zi­fi­scher Konzepte. Im Deutschen findet sich zum Teil eine synonyme Nutzung der ver­schie­de­nen Begriffe. Um eine präzise Unicode-De­fi­ni­ti­on geben zu können, bilden wir hier auch die eng­li­schen Terme ab:

Begriff Bedeutung Eng­li­scher Term
Zei­chen­satz Menge möglicher Zeichen, z.B. Ziffern „0–9“, Buch­sta­ben „a–z“, etc. Character set
Codepunkt Einem be­stimm­ten Zeichen zu­ge­ord­ne­te Nummer innerhalb der Code-Domäne Code point
Zei­chen­code Zuordnung eines jeden Zeichens zu genau einem Codepunkt Coded character set
Zei­chen­co­die­rung Prozess zur Um­wand­lung eines Zeichens in eine tech­ni­sche Struktur, z. B. Bi­när­dar­stel­lung Character encoding

Übersicht ge­bräuch­li­cher Zei­chen­ko­die­run­gen

Vor dem Aufkommen von Unicode gab es eine große Vielzahl spe­zi­fi­scher Ko­die­run­gen. Die Norm war, eine eigene Kodierung für jede Sprache oder Sprach­fa­mi­lie ein­zu­set­zen. Dies führte häufig zu Dar­stel­lungs­feh­lern und Daten-In­kon­sis­ten­zen. Um dem ent­ge­gen­zu­wir­ken, wurden Zei­chen­ko­die­run­gen oft als ab­wärts­kom­pa­ti­ble Übermenge eines bereits exis­tie­ren­den Standards mo­del­liert. So baut der moderne Unicode-Standard auf der früheren Zei­chen­co­die­rung ISO Latin-1 auf, welche wiederum auf dem ASCII-Zei­chen­code basiert.

Zei­chen­co­die­rung Bits pro Zeichen Mögliche Zeichen Zei­chen­satz
ASCII 7 Bit 128 Buch­sta­ben, Zahlen und Son­der­zei­chen der US-Ame­ri­ka­ni­schen Tastatur, sowie Steu­er­zei­chen für Fern­schrei­ber
ISO Latin-1 (ISO 8859-1) 8 Bit 256 Erste 128 Zeichen wie ASCII, weitere 128 Zeichen für Son­der­zei­chen eu­ro­päi­scher Sprachen
Universal Coded Character Set 2 (UCS-2) 16 Bit 65.536 Zeichen des „Basic Mul­ti­l­in­gu­al Plane” (BMP); erste 256 Zeichen wie bei ISO Latin-1
Universal Coded Character Set 4 (UCS-4) 32 Bit 1.114.111 Zeichen des BMP und weitere darüber hin­aus­ge­hen­de; insgesamt 143.859 Zeichen in Unicode Version 13.0; erste 256 Zeichen wie ISO Latin-1
UCS Trans­for­ma­ti­on Format 8 Bit (UTF-8) 8/16/24/32 Bit 1.114.111 Beliebige Zeichen aus UCS-2 und UCS-4; erste 256 Zeichen wie ISO Latin-1

Aufbau des Unicode-Standards

Der Unicode-Standard definiert Zeichen und kor­re­spon­die­ren­de Code­punk­te für Buch­sta­ben, Sil­ben­zei­chen, Ideo­gram­me, Satz­zei­chen, Son­der­zei­chen und Ziffern. Dabei werden neben dem la­tei­ni­schen das grie­chi­sche, ky­ril­li­sche, arabische, he­bräi­sche und thai­län­di­sche Alphabet un­ter­stützt. Ferner die ja­pa­ni­schen (Katakana, Hiragana), chi­ne­si­schen und ko­rea­ni­schen Schriften (Hangul). Hinzu kommen ma­the­ma­ti­sche, kauf­män­ni­sche und tech­ni­sche Son­der­zei­chen, sowie his­to­ri­sche Steu­er­zei­chen für Fern­schrei­ber.

Die Zeichen sind in einer Reihe von Zei­chen­ta­bel­len zu­sam­men­ge­fasst. Wir geben hier einen Überblick der ge­bräuch­lichs­ten Zei­chen­ta­bel­len.

Schrift­sys­te­me des Unicode-Standards

Zei­chen­ta­bel­le Enthält u.A. die Alphabete
Eu­ro­päi­sche Schrift­sys­te­me Armenisch, Georgisch, Grie­chisch, La­tei­nisch
Afri­ka­ni­sche Schrift­sys­te­me Äthio­pisch, Ägyp­ti­sche Hie­ro­gly­phen, Koptisch
Schrift­sys­te­me des mittleren Ostens Arabisch, Hebräisch, Syrisch
Zen­tral­asia­ti­sche Schrift­sys­te­me Mon­go­lisch, Tibetisch, Alt-Türkisch
Süd­asia­ti­sche Schrift­sys­te­me Brahmi, Tamilisch, Vedisch
Süd­ost­asia­ti­sche Schrift­sys­te­me Khmer, Rohingya, Thai
Schrift­sys­te­me In­do­ne­si­ens und Ozeaniens Ba­li­ne­sisch, Bu­gi­ne­sisch, Ja­va­ne­sisch
Ost­asia­ti­sche Schrift­sys­te­me CJK (Chi­ne­sisch, Japanisch, Ko­rea­nisch), Hangul (Ko­rea­nisch), Hiragana (Japanisch)
Ame­ri­ka­ni­sche Schrift­sys­te­me Cherokee, Ka­na­di­sche Sil­ben­schrift, Osage

Symbole und Satz­zei­chen des Unicode-Standards

Zei­chen­ta­bel­le Enthält u.A. die Zeichen
No­ta­ti­ons­sys­te­me Braille-Muster, mu­si­ka­li­sche No­ten­schrift, Duployan Ste­no­gra­phie
Satz­zei­chen Satz­zei­chen der eng­li­schen Sprache, Satz­zei­chen eu­ro­päi­scher Sprachen, CJK-Satz­zei­chen
Al­pha­nu­me­ri­sche Symbole Ma­the­ma­ti­sche Buch­sta­ben, ein­ge­kreis­te Buch­sta­ben
Tech­ni­sche Symbole Symbole der Pro­gram­mier­spra­che APL, Symbole für optische Tex­terken­nung
Zahlen & Ziffern Maya-Ziffern, Os­ma­ni­sche Siyaq-Zahl­zei­chen, Ziffern der su­me­ri­schen Keil­schrift
Ma­the­ma­ti­sche Symbole Pfeile, Ma­the­ma­ti­sche Ope­ra­to­ren, Geo­me­tri­sche Formen
Emoji & Pik­to­gram­me Emoticons, Dingbats, weitere Pik­to­gram­me
Andere Symbole Al­che­mis­ti­sche Symbole, Wäh­rungs­zei­chen, Schach-, Domino-, und Mahjong-Zeichen

Wofür wird Unicode verwendet?

Der Unicode-Standard dient in erster Linie als uni­ver­sel­le Grundlage für die Ver­ar­bei­tung, Spei­che­rung und den Austausch von Text in jeder Sprache. Die meisten modernen Software-Kom­po­nen­ten, wie Bi­blio­the­ken, Pro­to­kol­le, Da­ten­ban­ken, usw., die auf Text operieren, bauen auf Unicode auf. Wir ver­deut­li­chen die Band­brei­te an Ein­satz­mög­lich­kei­ten anhand der folgenden Beispiele.

Be­triebs­sys­te­me

Unicode ist in den meisten modernen Be­triebs­sys­te­men der interne Standard für die Abbildung von Text. Manche Be­triebs­sys­te­me, wie Apples macOS, erlauben die Nutzung von Unicode-Zeichen in Da­tei­na­men.

Websites

Die Unicode-Variante UTF-8 hat sich als Standard für die Kodierung von HTML-Do­ku­men­ten durch­ge­setzt. Bereits 2016 benutzten mehr als 80 Prozent der weltweit meist­be­such­ten Websites UTF-8 für die Spei­che­rung und Dar­stel­lung ihrer HTML-Dokumente. Für die Nutzung von nicht-ASCII-Buch­sta­ben in Domänen-Namen hat sich der Punycode-Standard durch­ge­setzt.

Profi-Website in Sekunden dank KI.
  • Profi-Website in Sekunden dank KI
  • Aus tausenden Vorlagen auswählen
  • 30 Tage kostenlos testen

Pro­gram­mier­spra­chen

Viele moderne Pro­gram­mier­spra­chen nutzen Unicode als Basis für die Ver­ar­bei­tung von Text. Eine neuere Ent­wick­lung ist die Mög­lich­keit, Unicode-Zeichen zur Benennung von Variablen und Funk­tio­nen zu nutzen. Dies ist unter anderem in EC­MA­Script/Ja­va­Script möglich und wird im folgenden Code il­lus­triert:

let ︎👍 = true;
let 👎 = false;
if (bool_var === ︎👎) {
 // …
}
ja­va­script

Da­ten­ban­ken

Die beliebte und auf breiter Basis ein­ge­setz­te Datenbank MySQL un­ter­stützt den kom­plet­ten Unicode-Zei­chen­satz mit der Zei­chen­ko­die­rung „utf8mb4“. Bei Nutzung der Zei­chen­ko­die­rung „utf8“ kommt es hingegen zum Verlust von Zeichen, deren Codepunkt mehr als drei Bytes umfasst.

Fonts

Fonts enthalten die für die grafische Dar­stel­lung von Text zum Einsatz kommenden Glyphen. Aufgrund der großen Menge der im Unicode-Standard ent­hal­te­nen Zeichen gibt es keinen Font, der sämtliche Zeichen enthält. Selbst die Un­ter­men­ge des Basic Mul­ti­l­in­gu­al Plane wird nur von wenigen Fonts komplett abgedeckt. Hier ein paar Beispiele:

Unicode-Font Glyphen Lizenz
Noto ca. 77.000 Open Font License
Sun-ExtA/B ca. 50.000 Freeware
Unifont ca. 63.000 GNU GPL
Code2000 ca. 63.000 Shareware
HiDrive Cloud-Speicher
Ihr sicherer Online-Speicher
  • Daten zentral speichern, teilen und be­ar­bei­ten
  • Ser­ver­stand­ort Deutsch­land (ISO 27001-zer­ti­fi­ziert)
  • Höchste Da­ten­si­cher­heit im Einklang mit der DSGVO

Wie setzt man Unicode ein?

In vielen Fällen setzen Nut­ze­rin­nen und Nutzer Unicode ein, ohne sich dessen je bewusst zu werden. Digitaler Text liegt in den meisten Do­ku­men­ten und An­wen­dun­gen als Unicode vor und lässt sich von Nutzenden beliebig kopieren, einfügen und be­ar­bei­ten. Manchmal ergibt sich die Not­wen­dig­keit für den Endnutzer bzw. die End­nut­ze­rin, ein be­stimm­tes Unicode-Zeichen in Text ein­zu­fü­gen. Dafür gibt es ver­schie­de­ne Mög­lich­kei­ten, die wir im Folgenden vor­stel­len.

Spezielle Software-Tas­ta­tu­ren

Die Nutzung spe­zi­el­ler Software-Tas­ta­tu­ren ist die wohl ge­bräuch­lichs­te Methode, Unicode-Zeichen in Text ein­zu­fü­gen. Auf Mo­bil­ge­rä­ten all­ge­gen­wär­tig, erlauben Software-Tas­ta­tu­ren das Um­schal­ten zwischen Sprachen und den da­zu­ge­hö­ri­gen Al­pha­be­ten. Dabei ändert sich die Tas­ten­be­le­gung, wobei alle Zeichen dem Unicode-Re­per­toire ent­stam­men. Die Zeichen lassen sich beliebig mischen und mit­ein­an­der in Texten kom­bi­nie­ren.

Ein gutes Beispiel hierfür sind die Emojis: Emojis sind in Unicode ganz normale Zeichen wie Buch­sta­ben, Zahlen und Son­der­zei­chen. Wie von digitalen Zeichen gewohnt ist die Dar­stel­lung der Emojis un­ab­hän­gig von deren interner Mo­del­lie­rung. Jedes Be­triebs­sys­tem stellt ein und dasselbe Emoji leicht un­ter­schied­lich dar.

Die nütz­li­chen Software-Tas­ta­tu­ren finden sich nicht nur auf Mo­bil­ge­rä­ten. Auch auf dem Desktop sind sie vorhanden. Sie lassen sich in Windows, macOS und vielen Linux-Dis­tri­bu­tio­nen leicht öffnen und stellen je nach aus­ge­wähl­ter Sprache eine un­ter­schied­li­che Menge an Zeichen dar. Da die Anzahl an Tasten limitiert ist, werden nicht sämtliche Unicode-Zeichen dar­ge­stellt. Vielmehr handelt es sich um eine sprach­spe­zi­fi­sche Auswahl der ge­bräuch­lichs­ten Zeichen.

Unicode-Zei­chen­ta­bel­len

Neben den Software-Tas­ta­tu­ren sind Unicode-Zei­chen­ta­bel­len der wohl nütz­lichs­te Weg, auf Unicode-Zeichen zu­zu­grei­fen. Zur Er­in­ne­rung: ein Zei­chen­code („Coded character set“) ist die Menge aller Zeichen mitsamt ihrer kor­re­spon­die­ren­den ein­deu­ti­gen Code­punk­te. Für eine solche Struktur bietet sich die Anordnung als Tabelle an, und in der Tat umfasst der Unicode-Standard genau solche, als Unicode Code Charts be­zeich­ne­te Tabellen. Aus diesen Tabellen lassen sich ei­ner­seits spe­zi­fi­sche Zeichen kopieren, um diese an­der­wei­tig zu verwenden. An­de­rer­seits kann man als End­nut­ze­rin bzw. Endnutzer den ent­spre­chen­den Codepunkt ablesen, z. B. um diesen als nu­me­ri­sche Zeichen-Referenz zu nutzen — mehr dazu im nächsten Abschnitt.

Auch viele Desktop-Be­triebs­sys­te­me enthalten eine Unicode-Zei­chen­ta­bel­le. Diese gibt einen Überblick aller ver­füg­ba­ren Unicode-Zeichen samt Codepunkt, Be­schrei­bung und Glyphe. Ein Zeichen lässt sich per Klick einfügen, bzw. kopieren. Eine Zei­chen­ta­bel­le lässt sich mit wenigen Zeilen Code auch selbst erzeugen. Wir zeigen im weiteren Verlauf des Artikels ein Beispiel in der Pro­gram­mier­spra­che Python.

Nu­me­ri­sche Zeichen-Referenz

Im Mit­tel­punkt des Unicode-Standards steht die Zuordnung von Zeichen zu Code­punk­ten. Kennt man den Codepunkt eines Zeichens, lässt sich dieser verwenden, um das ent­spre­chen­de Zeichen in ver­schie­de­nen Kontexten ein­zu­bin­den. Unter Windows erfolgt die Eingabe zum Einfügen von Unicode-Symbolen über die normale Hardware-Tastatur unter Nutzung einer spe­zi­el­len Tas­ten­kom­bi­na­ti­on. Beachten Sie, dass die Nummer des Code­punkts nor­ma­ler­wei­se in He­xa­de­zi­mal-Dar­stel­lung ein­ge­ge­ben werden muss.

Am häu­figs­ten benötigen Pro­gram­mie­ren­de die nu­me­ri­schen Zeichen-Re­fe­ren­zen. Die he­xa­de­zi­ma­le Dar­stel­lung der Code­punk­te erlaubt die Abbildung eines Unicode-Zeichens in Zeichen des ASCII-Zei­chen­sat­zes. Wir zeigen das Vorgehen hier in HTML; prin­zi­pi­ell funk­tio­niert dieses ebenso in Python, C++ etc.

Das generelle Schema, um ein Zeichen per nu­me­ri­scher Referenz ein­zu­bin­den, umfasst die Referenz selbst, sowie einen öffnenden und schlie­ßen­den Terminus: In HTML-Do­ku­men­ten wird die nu­me­ri­sche Referenz mit &#x eröffnet und mit ; ab­ge­schlos­sen. Da­zwi­schen wird ohne Leer­zei­chen der zwei- bis vier­stel­li­ge He­xa­de­zi­mal-Codepunkt ein­ge­tra­gen. Es ergibt sich das Muster &#xNNNN;.

Um bei­spiels­hal­ber das Copyright-Zeichen „©“ in ein HTML-Dokument ein­zu­fü­gen, gehen wir nach folgendem Schema vor:

  1. In einer Unicode-Tabelle nach dem Zeichen suchen.
  2. Den zum Zeichen gehörigen Codepunkt ablesen. Im Falle unseres Beispiels ist der Codepunkt als „U+00A9“ angegeben, wobei es sich um die he­xa­de­zi­ma­le Dar­stel­lung handelt.
  3. Die Zeichen-Referenz kom­po­nie­ren und in HTML-Quelltext oder ein Markdown-Dokument eintragen. In unserem Fall geben wir © ein; dies ergibt das ge­r­en­der­te Zeichen „©“.

Weniger ge­bräuch­lich ist ein ver­wand­ter Ansatz, der die Nutzung von Code­punk­ten in Dezimal- statt He­xa­de­zi­mal­dar­stel­lung erlaubt. In diesem Fall beginnt die nu­me­ri­sche Referenz mit &# (ohne das „x“) und schließt wie gehabt mit ; ab. Da­zwi­schen wird der Codepunkt in De­zi­mal­dar­stel­lung ge­schrie­ben. Im Fall unseres Beispiels ergibt sich die nu­me­ri­sche Referenz © für das Copyright-Zeichen.

Tipp

Nutzen Sie den Unicode Character Inspector, um schnell die ver­schie­de­nen Codes zu einem Zeichen zu erfahren.

Benannte Zeichen-Entitäten

Da die Schreib­wei­se von Unicode-Zeichen als nu­me­ri­sche Re­fe­ren­zen für den Menschen nicht intuitiv ist, gibt es noch eine weitere Methode. Es handelt sich dabei um die benannten Zeichen-Entitäten. Diese sind für häufig ge­brauch­te Zeichen definiert und ordnen dem Zeichen einen kurzen, ein­präg­sa­men Namen zu. Eine benannte Zeichen-Entität beginnt mit dem Und-Zeichen & und endet mit einem Semikolon ;. Da­zwi­schen wird ohne Leer­zei­chen der de­fi­nier­te Name platziert. Um das Copyright-Zeichen „©“ in HTML ein­zu­fü­gen schreibt man einfach ©.

Tipp

Die komplette Liste der de­fi­nier­ten Zeichen-Entitäten ist im HTML-Standard hin­ter­legt.

Pro­gram­mier­spra­chen

Die meisten Pro­gram­mier­spra­chen enthalten grund­le­gen­de Funk­tio­nen, mit denen sich Zeichen und Code­punk­te umwandeln lassen. Die ent­spre­chen­den Funk­tio­nen heißen oft ord(Zeichen) und chr(Codepunkt). Dabei gilt:

chr(ord(Zeichen)) == Zeichen

Beachten Sie, dass es immer möglich ist, den zu einem Zeichen kor­re­spon­die­ren­den Codepunkt zu ermitteln. An­ders­her­um funk­tio­niert die Zuordnung nur für Zahlen, die tat­säch­lich als Code­punk­te des Zei­chen­codes definiert sind. Wir zeigen hier das grund­le­gen­de Schema anhand eines kurzen Python-Beispiels:

# Dezimal-Codepunkt eines Zeichens ermitteln
ord('A') # `65`
# Hexadezimal-Codepunkt eines Zeichens ermitteln
hex(ord('A')) # `0x41`
# zu Codepunkt gehöriges Zeichen ermitteln
chr(65) # `'A'`
chr(0x41) # `'A'`
chr(0x110001) # Fehler, da Codepunkt > `0x110000`
python

Mithilfe dieser Funk­tio­nen ist es pro­blem­los möglich, eine Zei­chen­ta­bel­le für Code­punk­te des Unicode-Zei­chen­sat­zes zu erstellen. Dazu iteriert man die Code­punk­te und gibt die kor­re­spon­die­ren­den Zeichen aus. Mit Python ist dies innerhalb weniger Code­zei­len erledigt:

# `range` bei `32` beginnen, da bei kleinerem Wert Steuerzeichen ausgegeben werden
# ASCII-Zeichensatz ausgeben
for code_point in range(32, 128):
	print(code_point, hex(code_point), chr(code_point))
# ISO Latin-1 ausgeben
for code_point in range(32, 256):
	print(code_point, hex(code_point), chr(code_point))
python

Programm-Bi­blio­thek ICU

Die in­ter­na­tio­na­len Kom­po­nen­ten für Unicode („In­ter­na­tio­nal Com­pon­ents for Unicode“, ICU) sind in einer vom Unicode-Kon­sor­ti­um be­reit­ge­stell­ten Programm-Bi­blio­thek zu­sam­men­ge­fasst. Die Bi­blio­thek wird unter einer Open-Source-Lizenz ver­öf­fent­licht und lässt sich auf vielen Be­triebs­sys­te­men einsetzen. Die Software dient der pro­gram­ma­ti­schen In­ter­na­tio­na­li­sie­rung („In­ter­na­tio­na­liza­ti­on“, oft abgekürzt als „i18n“). Zu ihren Ein­satz­be­rei­chen zählen unter anderem:

  • Ver­ar­bei­tung von Unicode-Texten
  • Un­ter­stüt­zung regulärer Ausdrücke in Unicode
  • Parsen und For­ma­tie­rung von Ka­len­der­da­ten, Zeit­an­ga­ben, Zahlen, Währungen und Nach­rich­ten

Die ICU-Bi­blio­thek liegt in zwei Versionen vor:

  • „icu4c“ ist in C/C++ ge­schrie­ben und stellt eine API für diese Sprachen bereit.
  • „icu4j“ ist in Java ge­schrie­ben und stellt für diese Sprache eine API bereit.

Der Einsatz der Kom­po­nen­ten liefert kon­sis­ten­te Resultate un­ab­hän­gig von der zu­grun­de­lie­gen­den Plattform.

Charset-Meta-Angabe im Head von HTML-Do­ku­men­ten

Die meisten HTML-Dokumente liegen heut­zu­ta­ge in der Zei­chen­co­die­rung UTF-8 vor. Um si­cher­zu­stel­len, dass Sei­ten­be­su­chen­den das Dokument ohne feh­ler­haf­te Zeichen angezeigt wird, sollte eine „Charset“-Meta-Tag-Angabe im Head des HTML-Dokuments platziert werden. Diese weist den Browser an, das ab­ge­ru­fe­ne Dokument als UTF-8 zu in­ter­pre­tie­ren und ist nach­fol­gend ex­em­pla­risch dar­ge­stellt:

<head>
<meta charset="utf-8">
<!-- weitere Head-Elemente -->
</head>
html

Instagram-Fonts

Das beliebte Social Network Instagram erlaubt keine Text­for­ma­tie­rung für Biografie-In­for­ma­tio­nen, Beiträge oder Stories. Die kreativen Mög­lich­kei­ten der Nut­ze­rin­nen und Nutzer sind damit be­schränkt. Findige Ent­wi­ckeln­de haben jedoch mit einem Trick Abhilfe ge­schaf­fen: Instagram setzt auf Unicode, und so ist es möglich, aus spe­zi­el­len Zeichen einen for­ma­tiert wirkenden Text zu kom­po­nie­ren. Dabei kommen ins­be­son­de­re Zeichen zum Einsatz, die la­tei­ni­schen Buch­sta­ben ähneln. Am ein­fachs­ten lässt sich ein der­ar­ti­ger Text mit einem Insta Fonts Generator erzeugen. Die Nutzung von Instagram-Fonts funk­tio­niert darüber hinaus auch in anderen sozialen Netz­wer­ken.

Zum Hauptmenü