Henryk Plötz: Codierung einer XML Datei herausfinden und korrigieren

Beitrag lesen

Moin,

ich bin leider immer noch etwas aufgeschmissen. Wenn irgend ein String durch das Prüf-Script "durchfällt" dann ist er kein UTF-8. Aber wie bekomme ich heraus was er wirklich ist bzw. was ich bei iconv als Quellzeichensatz angeben muss?

Indem du die Person fragst von der du den String hast? Du hast grade herausgefunden, dass Nicht-ASCII-Strings ohne korrekte Angabe der Zeichencodierung weitgehend wertlos sind.

(Diese Erkenntnis hat sich in der Computerbranche IMHO leider viel zu spät festgesetzt. Man hätte schon vor 15 oder 20 Jahren damit beginnen müssen, alle Interfaces über die eine Zeichenkette von einer Anwendung in eine andere kommen kann konsequent mit einer nicht-optionalen Zeichencodierungsangabe auszustatten.)

Was dir bleibt sind höchstens noch (sprachraum- und betriebssystemspezifische) Heuristiken. Für Westeuropa und Windows zum Beispiel: Was nicht ASCII ist, ist vermutlich UTF-8. Was nicht UTF-8 ist, ist vermutlich ISO-8859-1(5). Was nicht ISO-8859-1(5) ist, ist vermutlich Windows-1252.
(Parallel dazu: UTF-16 ist an der BOM leicht zu erkennen. Wenn Macs im Spiel sind, kann es statt ISO-8859-1(5) auch MacRoman sein.)

Die Heuristik versagt natürlich sofort, wenn jemand anderes kommt. Etwa jemand der Tschechisch schreibt. Oder jemand mit DOS und Codepage 437 ;-)

--
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~