Unicode
https://de.wikipedia.org/wiki/Unicode
Ist eine Zuordnung von Symbolen (Buchstaben, Emojis, etc.) zu Zahlen.
- Über 100'000 definierte Zeichen
- ASCII-kompatibel, Zahlen 128-255 sind absichtlich nicht definiert (weil durch eine Unzahl «alter» Zuordnungen belegt).
UTF-8
https://de.wikipedia.org/wiki/UTF-8
Ist eine (raffinierte) Möglichkeit, die Zahlen für die Unicodesymbole zu kodieren.
- ASCII-kompatibel
- nur nicht-ASCII-Zeichen belegen mehrere Bytes.
- auch ein partieller UTF-8 codierter Text kann fehlerfrei gelesen werden. (Es ist immer klar, ob ein Byte ein ASCII-Zeichen, ein Start-Byte oder ein Folge-Byte ist).
Beispiel: Codierung vom Smiley (Unicode Point 128578, bzw. 0x1f642)
Pythonfunktionen
>>> chr(0x1f642)
'🙂'
>>> ord('🙂')
128578
>>> bytes('🙂',encoding="utf8")
b'\xf0\x9f\x99\x82'
>>> hex(128578)
'0x1f642'
>>> 0x1f642
128578
>>> bytes('Blöchliger', encoding="utf8")
b'Bl\xc3\xb6chliger'
>>> 0xc3b6
50102
>>> bin(0xc3b6)
'0b1100001110110110'
>>> 0b00011110110
246
>>> ord("ö")
246
