你好 L00NIX,
Verstehe ich nicht so ganz, was mit Code-Einheit gemeint ist.
Zeichen werden in Codes kodiert; dabei kann ein Codes auf verschiedene Code-Einheiten aufgeteilt werden. Unicode kann vollständig in 32 Bit abgebildet werden, aber dann bräuchte man für jedes Zeichen direkt 32 Bit, auch wenn der Code für das Zeichen z. B. 32 ist. Blöd, da 32 problemlos auch in 8 Bit kodiert werden kann. Da kommen die Kodierungsformate ins Spiel, die Codes auf variable Längen aufteilen, dabei wird jeder Code-Teil in einer bestimmten Größe dargestellt; daraus ergeben sich die Code-Einheiten. Bei UTF-8 ist die Größe der Code-Einheiten 8 Bit, das heisst, es können alle Zeichen bis 2^7 in 8 Bit dargestellt werden. Alles was überhalb von 2^7, aber unterhalb von 2^11 liegt, kann in 16 Bit, also zwei Code-Einheiten kodiert werden. Von 2^11 bis 2^16 braucht man 24 Bit, also drei Code-Einheiten. Und für Zeichen von 2^11 bis 2^20 benötigt man 32 Bit, also 4 Code-Einheiten. In UTF-8 ist ein Zeichen als mit 1-4 Octetts (oder, wenn man der ISO-Norm folgt, 1-6 Octetts) kodiert.
Jedenfalls ist ein Zeichen mit 16 Bit codiert, d.h. jeder Buchstabe
besteht aus 2 Byte, was sich bei Fehldarstellungen ja immer in diesen
doppelten Zeichen (z.B. Rechtecke) darstellt.
Wenn du genauer aufgepasst hättest, wäre dir aufgefallen, dass diese "Fehldarstellungen" nur bei bestimmten Zeichen (bei dir vermutlich die deutschen Sonderzeichen ä, ö, ü, ß, etc, pp) auftritt. Du kannst ja mal den Sourcecode der Forums-Seiten anschauen; die sind in UTF-8 kodiert.
再见,
克里斯蒂安
Interessante Kommunikation | Modifiziertes Code-Folding mit TextMate
Wenn auf Erden alle das Schoene als schoen erkennen, so ist dadurch schon das Haessliche bestimmt.
http://wwwtech.de/