<sub class="descriptionSection">10-12-2024 08:32:am // #Codes // [[TI]]</sub>
____
UTF-8 kodiert Unicode Codepoints mit einem, zwei, drei oder vier Bytes, je nachdem wieviele signifikante Bits im Unicode Codepoint enthalten sind.
| Unicode Codepoint | Gesetzte Bits | UTF-8 Bytes | UTF-8 Byte 1 | UTF-8 Byte 2 | UTF-8 Byte 3 | UTF-8 Byte 4 |
| --------------------- | ------------- | ----------- | ------------ | ------------ | ------------ | ------------ |
| Von U+0000 bis U+007F | 7 | 1 | 0xxx xxxx | - | - | - |
| U+0080 bis U+07FF | 11 | 2 | 110x xxxx | 10xx xxxx | - | - |
| U+0800 bis U+FFFF | 16 | 3 | 1110 xxxx | 10xx xxxx | 10xx xxxx | - |
| U+10000 bis U+10FFFF | 21 | 4 | 1111 0xxx | 10xx xxxx | 10xx xxxx | 10xx xxxx |
- Im ersten Code bereich (U+0000 bis U+007F) entspricht UTF-8 dem US-ASCII-Code
- Das erste Byte wird immer als Startbyte (Preamble) bezeichnet. Es beginnt mit "0" oder mit "11"
- Die weiteren Bytes sind "Folgebytes", wenn diese mit "10" beginnen
## Beispiel für die Kodierung mit UTF-8
> [!NOTE] Unicode Charts
> Unicodes Codepoints sind verfügbar auf: https://unicode.org
"€" = Codepoint 20AC
1. Entsprechend der Tabelle werden 3 Bytes zur Kodierung benötigt, da der Codepoint zwischen U+0800 und U+FFFF liegt
2. 20AC => $0010 0000 1010 1100_{(2)}$
3. 1110 ==0010== (erstes 4 bit des Codepoints) 10==00 0010== (zweite 4bits + 2 um byte aufzufüllen) 10==10 1100==
4. => Die UTF-8 Codierung heißt:
$
1110\text{ }0010 \text{ } 1000\text{ }0010 \text{ }1010 \text{ }1100
$
$
E282AC (hexadezimale = UTF-8)
$