Unicode: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 3: | Zeile 3: | ||
== Codepoints == | == Codepoints == | ||
Unicode ordnet jedem Zeichen einen eindeutigen Zahlenwert zu. Dieser Wert wird als '''Codepoint''' bezeichnet. | |||
''U+ | |||
Codepoints werden üblicherweise in hexadezimaler Schreibweise mit dem Präfix '''U+''' angegeben. | |||
Beispiele: | |||
* A → U+0041 | * A → U+0041 | ||
* ä → U+00E4 | |||
* € → U+20AC | * € → U+20AC | ||
* 😊 → U+1F60A | * 😊 → U+1F60A | ||
Der Codepoint legt fest, '''welche Nummer ein Zeichen besitzt'''. Er legt jedoch noch nicht fest, '''wie diese Nummer im Speicher abgelegt wird'''. | |||
Dafür werden Unicode-Kodierungen wie '''UTF-8, UTF-16 oder UTF-32''' verwendet. | |||
Beispiel für den Buchstaben '''A''': | |||
* Unicode-Codepoint: U+0041 | |||
* UTF-8: 1 Byte | |||
* UTF-16: 2 Byte | |||
* UTF-32: 4 Byte | |||
Unicode definiert Codepoints im Bereich von '''U+0000 bis U+10FFFF''' und kann damit über eine Million verschiedene Codepoints adressieren. | |||
== UTF-8 == | == UTF-8 == | ||
Aktuelle Version vom 31. August 2026, 12:36 Uhr
Unicode ist ein internationaler Standard zur Darstellung von Schriftzeichen aus nahezu allen Sprachen der Welt. Er ordnet jedem Zeichen einen eindeutigen Codepunkt zu, unabhängig von Sprache, Schrift oder Plattform.
Codepoints
Unicode ordnet jedem Zeichen einen eindeutigen Zahlenwert zu. Dieser Wert wird als Codepoint bezeichnet.
Codepoints werden üblicherweise in hexadezimaler Schreibweise mit dem Präfix U+ angegeben.
Beispiele:
- A → U+0041
- ä → U+00E4
- € → U+20AC
- 😊 → U+1F60A
Der Codepoint legt fest, welche Nummer ein Zeichen besitzt. Er legt jedoch noch nicht fest, wie diese Nummer im Speicher abgelegt wird.
Dafür werden Unicode-Kodierungen wie UTF-8, UTF-16 oder UTF-32 verwendet.
Beispiel für den Buchstaben A:
- Unicode-Codepoint: U+0041
- UTF-8: 1 Byte
- UTF-16: 2 Byte
- UTF-32: 4 Byte
Unicode definiert Codepoints im Bereich von U+0000 bis U+10FFFF und kann damit über eine Million verschiedene Codepoints adressieren.
UTF-8
UTF-8 ist die heute wichtigste Unicode-Kodierung.
Eigenschaften:
- variable Länge: 1 bis 4 Byte pro Zeichen
- ASCII-kompatibel (0–127 bleiben gleich)
- platzsparend für westliche Sprachen
- weltweiter Standard für Web, Dateien, Protokolle
| Unicode-Codepunkt-Bereich | Byte-Länge in UTF-8 | Beispiel |
|---|---|---|
| U+0000 – U+007F | 1 Byte | A → U+0041 |
| U+0080 – U+07FF | 2 Byte | ä → U+00E4 |
| U+0800 – U+FFFF | 3 Byte | € → U+20AC |
| U+10000 – U+10FFFF | 4 Byte | 😊 → U+1F60A |
UTF-16 und UTF-32
Neben UTF-8 gibt es weitere Möglichkeiten, Unicode-Zeichen in Bytes zu kodieren.
UTF-16
UTF-16 verwendet je nach Zeichen 2 oder 4 Byte.
- häufige Zeichen benötigen 2 Byte
- Zeichen außerhalb der sogenannten Basic Multilingual Plane (BMP) benötigen 4 Byte
- wird unter anderem intern in Java und in Teilen von Windows verwendet
- für viele nicht-lateinische Schriften teilweise platzsparender als UTF-8
Vorteile:
- viele Unicode-Zeichen benötigen nur 2 Byte
- weit verbreitet in bestehenden Softwaresystemen
Nachteile:
- variable Länge von 2 oder 4 Byte
- nicht ASCII-kompatibel
- für Texte mit vielen ASCII-Zeichen meist größer als UTF-8
UTF-32
UTF-32 verwendet für jeden Unicode-Codepoint immer 4 Byte.
- feste Länge von 4 Byte
- dadurch einfache Verarbeitung und Berechnung von Zeichenpositionen
- wird vor allem intern in bestimmten Programmen und Bibliotheken verwendet
Vorteile:
- feste Länge erleichtert die Verarbeitung
- direkter Zugriff auf einzelne Codepoints
Nachteile:
- hoher Speicherbedarf
- für normale Textdateien und Webseiten ineffizient
- deutlich weniger verbreitet als UTF-8 und UTF-16
| Kodierung | Byte pro Codepoint | Vorteil | Nachteil |
|---|---|---|---|
| UTF-8 | 1–4 Byte | platzsparend, ASCII-kompatibel | variable Länge |
| UTF-16 | 2 oder 4 Byte | viele Zeichen mit 2 Byte | nicht ASCII-kompatibel |
| UTF-32 | 4 Byte | einfache Verarbeitung | hoher Speicherbedarf |
Vorteile von Unicode
- unterstützt alle Sprachen (Deutsch, Arabisch, Chinesisch, Emojis usw.)
- einheitlicher Standard weltweit
- löst Probleme älterer Systeme (ASCII, ISO-8859-1)
Kurzmerksatz
Unicode weist jedem Zeichen weltweit einen eindeutigen Codepunkt zu und UTF-8 speichert ihn effizient in Bytes.
