Thread emojis
(9 answers)
Opened by miwieg at 2017-12-20 11:48
UTF-8 ist eine sehr dankbare und einfache Kodierung.
Schau dir deine Bytes mal in Bits an. Im ersten Byte gibt die Anzahl der gesetzten höchstwertigen Bits an, aus wie vielen Bytes das Zeichen besteht. Bei ASCII-Zeichen ist das höchste Bit 0, d.h. nur 1 Byte. Bei sowas wie Ü fängst das erste Byte mit 110..... an (2 Bits gesetzt, d.h. 2 Bytes insgesamt). Bei deinem Smiley hast du dann vielleicht 11110... (4 Bits, d.h. 4 Bytes). Die Folgebytes beginnen immer mit 10......, d.h. es bleiben jeweils 6 Datenbits. Die Datenbits hängst du am Ende einfach aneinander (höherwertige sind in vorn) und fertig ist's. D.h. wenn du schauen willst, ob du die Daten richtig in eine Datei geschrieben hast, nimm einen Hexeditor und schau nach :-) Oder nimm einfach einen Editor, der UTF-8 kann und die entsprechenden Zeichen auch unterstützt ;-) - mein Punkt ist nur, dass das recht einfach nachzuprüfen ist. Vielleicht noch was: auch in UTF-16 kann man 2 16-Bit Code-Units pro Zeichen haben! Das ist oftmals falsch implementiert. D.h. Unicode-Zeichen größer als U+FFFF verursachen gerne mal Probleme! Last edited: 2017-12-20 18:43:12 +0100 (CET) |