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