Meise2000: Umlaute mit XML-Modul

Beitrag lesen

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