Unicode-Zeichen in UTF-8 (ohne BOM) und UTF-16 (Big Endian)?

...komplette Frage anzeigen

1 Antwort

Also UTF-16 sind in dem Fall einfach die beiden Hexzahlen in Binär.

Also U+00A7: 0000 0000 1010 0111

Und U+22BC: 0010 0010 1011 1100

Jetzt UTF-8, steht hier, wie's geht: https://de.wikipedia.org/wiki/UTF-8#Algorithmus

U+00A7 ist zwischen U+0080 und U+07FF, also brauchen wir die zweite Zeile der Tabelle.

Also folgendes Muster: 110x xxxx 10xx xxxx

Und dort, wo die "x"-en stehen, füllen wir einfach die Bitsequenz ein, die wir oben für U+00A7 ausgerechnet haben. Das sind allerdings 16 Bit und wir haben hier nur 11 "x"-en. Wenn das der Fall ist, nimmt man einfach so viele "niederwertige Bits" (LSBs), wie man "x"-en hat, also in diesem Fall die "hinteren" ("rechten") 11 Bit. Die "höchstwertigen" 5 Bits (MSBs) "schmeißen wir weg".

Also: 11000010 10100111

U+22BC ist zwischen U+0800 und U+FFFF, also brauchen wir die dritte Zeile der Tabelle.

Also folgendes Muster: 1110 xxxx 10xx xxxx 10xx xxxx

Und dort, wo die "x"-en stehen, füllen wir einfach die Bitsequenz ein, die wir oben für U+22BC ausgerechnet haben. Das sind ja genau 16 Bit und wir haben auch 16 "x"-en.

Also: 1110 0010 1000 1010 1011 1100

Fertig. :-)

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?