Hi, aus Deinen Angaben schliesse ich, dass das Einlesen der XML-Datei im Skript geschieht und nicht durch ein entsprechendes Modul, korrekt? Um eine utf8-codierte Datei einzulesen, solltest Du etwas der folgenden Art nutzen: open my $handle, "<:utf8", $filename or die "$filename: $!\n"; Wichtig ist das ":utf8" hinter dem "<", womit Du Perl mitteilst, dass da ein utf8-codierter Stream zu erwarten ist. Gleiches gilt, wenn Du die Daten in eine andere Datei schreiben willst: open $handle, ">:utf8", $filename or die "$filename: $!\n"; Wichtig ist dabei, dass Du die 3-Argument-Schreibweise des open verwendest: open FILEHANDLE, MODE, FILENAME Wenn Du utf8-Zeichen auf der Konsole ausgeben willst (die übrigens dann auch utf8 unterstützen sollte!), dann kannst Du mit binmode das Encoding anpassen: binmode STDOUT, ':utf8'; print "utf8-coded string\n";
Das Skript selber muss nicht in utf8 codiert sein. Wenn es das ist, solltest Du das Pragma "utf8" einbinden: use utf8; mehr zu dem Thema findet sich in perldoc perluniintro perldoc perlunicode perldoc -f open perldoc -f binmode perldoc utf8 Greetz
Linuxer
|