====== 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) {{:lehrkraefte:blc:informatik:efi-2023:pasted:20240326-190903.png}} ====== 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