Carsten: Das ewige Leid mit den Umlauten -» Perl -» HTML

Beitrag lesen

Hallo Matze2K,

Die Ausgabe ist bspw.: "dies ist leider ungültig"

Tja, das ist ein DOS ü und kein Windows ü.
Wenn du dein Script unter Windows edierst passiert das nicht.

Der Windows-Zeichensatz ist (100%?) identisch zum Web-üblichen
iso-8859-1 ("Latin-1") Zeichensatz.
<../../thb.htm#a201>

Aber der DOS Zeichensatz ist anders. Und das unlesbare ü oben
ist ein DOS ü!

Zeichencodes (hex)
   DOS   WIN
ä  84    e4
ö  94    f6
ü  81    fc
Ä  8E    c4
Ö  99    d6
Ü  9A    dc
ß  E1    df

Da man in Perl mit \0x84 Zeichen mit ihrem Hex-Codes angeben kann müsste
folgendes gehen :

$line =~ s/\0x81/ü/g;

wenn du DOS-Codes wandeln willst bzw.

$line =~ s/\0xfc/ü/g;

für Windows Codes, und zwar unabhängig vom Zeichensatz des Editors mit dem
du das erstellst.

Gruss,
Carsten