Umlaute mit XML-Modul
Meise2000
- perl
Hallo Leute,
ich verwende bei einigen Perl-Scripten das XML-Modul um XML-Dateien zu verarbeiten. Enthält diese Datei auch Umlaute, so werden die nicht richtig konvertiert. Ich bearbeite das folgendermassen nach:
sub converter {
my ($className, $string) = @_;
my $codea = pack("H*","c3a4");
my $codeA = pack("H*","c384");
my $codeo = pack("H*","c3b6");
my $codeO = pack("H*","c396");
my $codeu = pack("H*","c3bc");
my $codeU = pack("H*","c39c");
my $codes = pack("H*","c39f");
$string =~ s/$codea/ä/g;
$string =~ s/$codeA/Ä/g;
$string =~ s/$codeo/ö/g;
$string =~ s/$codeO/Ö/g;
$string =~ s/$codeu/ü/g;
$string =~ s/$codeU/Ü/g;
$string =~ s/$codes/ß/g;
return $string;
}
Das funktioniert auch bestens! Allerdings habe ich ein Problem, wenn ich Daten nicht in eine HTML-Seite einbaue, sondern als e-Mail verschicke. Dann muss ich ja:
$string =~ s/$codea/ä/g;
etc. verwenden. Das funktioniert aber nicht. Kann mir da jemand helfen? Gibt es vielleicht schon eine elegantere Konvertiermethode als mein Geschnipsel dort oben?
Meise
Hi,
etc. verwenden. Das funktioniert aber nicht. Kann mir da jemand helfen? Gibt es vielleicht schon eine elegantere Konvertiermethode als mein Geschnipsel dort oben?
Schau dir mal das Perl Modul HTML::Entities an.
Siehe http://search.cpan.org/author/GAAS/HTML-Parser-3.28/lib/HTML/Entities.pm.
Grüße Andres Freund