Christian Seiler: Unklarheiten im Quelltext

Beitrag lesen

Hallo Cyx23,

Wozu das ä bei der UTF-8-Kodierung?

da schau ich mal im "Praxisbuch XHTML" Addison-Wesley Verlag 2001 nach,
Seite 434, Zitat:

"UTF-8 - Durch diesen Zeichensatz lassen sich zwar Sonderzeichen darstellen,
da er jedoch lediglich aus den ersten 128 Zeichen des ISO-Zeichensatzes
besteht, können deutsche Umlaute hierdurch nicht dargestellt werden."

Sorry, das ist absoluter Blödsinn. Wenn das wirklich so in dem Buch steht hat der Autor gar keine Ahnung von dem Thema.

UTF-8 ist erstmal kein Zeichensatz, sondern eine Zeichenkodierung. Bei ISO-8859 kann man sich ja durchaus auf den Standpunkt stellen, dass die auch Zeichensätze sind, aber UTF-8 ist explizit als Kodierung entwickelt worden und im Standard werden explizit Unicode-Code-Points referenziert, d.h. es Unicode (aka ISO-10640) ist der Zeichensatz, der mit UTF-8 dargestellt werden kann.

Zum anderen: Mit UTF-8 kann man *JEDES* im Unicode-Standard definierte Zeichen kodieren. *JEDES*. Ohne Ausnahme. Auch Umlaute. Die brauchen dann halt zwei Bytes, sind aber in der Kodierung dennoch EIN ZEICHEN (die Kodierung hat halt eine Variable Zeichenzahl). Umlaute lassen sich sehr wohl mit UTF-8 darstellen, mal ein paar Beispiele:

Zeichen     UTF-8-Sequenz (Hex)  ISO-8859-1/Windows-1252   ISO-8859-15
ä           C3 A4                E4                        E4
ö           C3 B6                F6                        F6
ü           C3 BC                FC                        FC
Ä           C3 84                C4                        C4
Ö           C3 96                D6                        D6
Ü           C3 9C                DC                        DC
ß           C3 9F                DF                        DF
€           E2 82 AC             80 (nur Windows-1252)     A4

Das einzige, was an der obigen Aussage stimmt, ist, dass Bytes zwischen 0x00 und 0x7F in UTF-8 mit den gleichen Bytes US-ASCII (und damit auch allen anderen ASCII-kompatiblen Zeichenkodierung) identifiziert werden können.

Viele Grüße,
Christian