[Dresden-pm] Perl, utf8 und Umlaute

Steffen Schwigon ss5 at renormalist.net
Fr Jun 4 11:43:16 PDT 2010


"Martin Probst (RobHost Support)" <support at robhost.de> writes:
> 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 

Schreib mal bitte noch paar mehr Details, was genau meinst Du mit
mehrfach kodierten Daten. Du kriegst für einen Umlaut-ü z.B. solche
Doppelzeichen Ì, meinst Du sowas?

Und was meint dreifach? Werden aus einem Zeichen 3 Zeichen oder
verdoppelt es sich 3x, aus einem werden also 8 Zeichen?

Am besten, Du hast mal ein paar Bytes in einer Datei und attachst die
hier.

Weiterhin, wie versuchst Du das XML zu erzeugen? Selber oder mit einer
Lib? Und welcher Parser?


> und Perl in Verbindung mit utf8, Umlauten und regexen so gar nicht
> klar kommt,

Das ist definitiv eine Falschaussage, es sei denn, Du redest von
Uralt-Perls. Welche Perl-Version hast Du denn?

Wenn Du ein Minimalbeispiel zusammengebaut bekommst, bräuchten wir
auch nicht rumraten, sondern könnten es direkt lösen. Probier mal, das
zu liefern. 

Alles in ein tar.gz verpacken, damit nichts beim Mailen verfälscht
wird.


> habe ich es auf diese Art und Weise gelöst:
>
> ...
>    no utf8;
>    $text =~ s#[^a-zA-Z0-9ÄÖÜäüöß"\$_\-\.\+%&]# #g;
>    use utf8;
> ...

Du möchtest die Zeichen komplett diskriminieren? Das ist aber
inkonsequent. :-)


> 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?

Leicht: einfach *alle* Zeichen durch Spaces ersetzen. :-)

$text =~ s/./ /g;


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

Das ist ok und stellt keine Bedrohung dar.

Also flugs konkreter werden. Und uns dafür bissel Zeit gönnen, ich
kann z.B. nicht rund um die Uhr Mail lesen.


Kind regards,
Steffen 
-- 
Steffen Schwigon <ss5 at renormalist.net>
Dresden Perl Mongers <http://dresden-pm.org/>


Mehr Informationen über die Mailingliste Dresden-pm