1 2 3 4 5
$name = = 'Meier,G' . "\x81" . 'nter'; use Text::Iconv; my $converter = Text::Iconv->new("IBM852", "UTF-8"); $name = $converter->convert("$name"); print ">>>" , $name, "\n";
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
#!/usr/bin/perl use strict; use warnings; use utf8; # Text mit Sonderzeichen my $text = 'foo bar bär čar'; # Erzeuge Textdateien mit besonderen Encodings open(my $isoFH, ">:encoding(iso-8859-16)", "iso_8859_16.txt") or die $!; open(my $ibmFH, ">:encoding(ibm-852)", "ibm_852.txt") or die $!; # Schreibe den Text mit den Sonderzeichen in die Dateien # Hinweis: Wenn $text Zeichen enthält, die in den Zielkodierungen nicht # erlaubt sind, kommen Fehler, versuche z.B. 'bır'. print $isoFH $text; print $ibmFH $text; close $isoFH or die $!; close $ibmFH or die $!; # Jetzt die beiden Dateien mit den besonderen Encodings zum Lesen öffnen # Anstelle der gerade erzeugten Dateien kannst Du natürlich auch Deine # eigenen Quelldateien nehmen. open($isoFH, "<:encoding(iso-8859-16)", "iso_8859_16.txt") or die $!; open($ibmFH, "<:encoding(ibm-852)", "ibm_852.txt") or die $!; # Und eine UTF-8-Datei zum Schreiben open(my $uniFH, ">:encoding(utf8)", "utf8.txt") or die $!; # Schreibe den Inhalt der beiden Spezialdateien in die UTF-8-Datei print $uniFH "ISO:\n"; print $uniFH $_ while <$isoFH>; print $uniFH "\nIBM:\n"; print $uniFH $_ while <$ibmFH>; # Öffne die UTF-8-Datei in einem Editor und achte darauf, dass UTF-8 # als Kodierung eingestellt ist. # Alle Zeichen, die es in den beiden besonderen Encodings gibt, sollten # die Prozedur überstanden haben.