[Dresden-pm] Perl, utf8 und Umlaute

Martin Probst (RobHost Support) support at robhost.de
Fr Jun 4 01:56:55 PDT 2010


Hi Mongers,

ich habe ein leidiges Problem mit doppelt (manchmal dreifach) kodierten utf8 Umlauten in Perl. Ich habe ein paar Daten und möchte daraus eine XML-Datei machen. Leider nörgelt der abnehmende Parser bei diesen doppelt kodierten Zeichen rum und möchte diese nicht verarbeiten. Da der aber auch nur utf8 versteht und Perl in Verbindung mit utf8, Umlauten und regexen so gar nicht klar kommt, habe ich es auf diese Art und Weise gelöst:

...
   no utf8;
   $text =~ s#[^a-zA-Z0-9ÄÖÜäüöß"\$_\-\.\+%&]# #g;
   use utf8;
...

Im Endeffekt sollen alle Zeichen die nicht in der Regex ausgeschlossen werden, durch ein Leerzeichen ersetzt werden. Leider klappt das mit den doppelt kodierten Zeichen nicht. Habt Ihr eine Idee wie man diese zuverlässig verbannen kann?

An den Ursprungsdaten lässt sich leider keine Veränderung vornehmen.

MfG
Maddin



Mehr Informationen über die Mailingliste Dresden-pm