dedlfix: Probleme mit Umlauten

Beitrag lesen

Hi!

Wenn ein ISO-codiertes ä in einem utf-8-Text auftaucht dann ist das ein Zeichen mit einer 1 im führendem Bit. Innerhalb des utf-8 wird dann auf das nächste Byte zugegriffen und beide Bytes dann als ein Zeichen dargestellt, was m.E. beliebige Werte annehmen kann.

Es können bei UTF-8 bis zu drei Byte folgen. Zeichen mit zwei Folgebytes kommen auch hierzulande vor, beispielsweise das €-Zeichen. Die Folgebytes dürfen auch nicht beliebig sein, sondern müssen mit der Bit-Sequenz 10 anfangen. Ein guter UTF-8-Lesemechanismus sollte ein falsches Folgebyte als ungültig erkennen und es normal interpretieren. Der ungültige Sequenzbeginn kann durch das Replacement-Character � dargestellt werden.

Von daher kann man m.E. nur
a) zurückschalten nach ISO
b) ä austauschen gegen ae
c) wieder schalten nach utf-8
d) ae austauschen gegen ä

Es gibt gültige Sequenzen von ae usw., die einen Fehler ergäben, ersetzte man sie durch ein ä. Und es gibt Konvertiertools, die ohne Kollateralschaden zwischen Zeichenkodierungen umkodieren können (wenn mit der Zielkodierung die entsprechenden Zeichen dargestellt werden können, was bei ISO-8859-1 nach UTF-8 der Fall ist).

Lo!