Gerd Gruber: Unicode nach UTF-8 konvertieren

Beitrag lesen

Hallo Leute,

ich finde für folgendes Problem leider keine Lösung.
Ich habe eine Datei, die in Unicode (!nicht UTF-8!) kodiert ist.
Ich brauche aber diese Daten unbedingt in UTF-8 kodiert.
Dazu lese ich diese Datei mit Hilfe von Perl in eine Variable $data ein.

Ich habe folgendes versucht:
  open(OUTPUT, ">> atest.txt") || die "kann datei1  nicht öffnen $!";
  print OUTPUT $data;
  close(OUTPUT);
  my $neudata = =encode('UTF-8', $data);
  open(OUTPUT, ">> btest.txt") || die "kann datei2  nicht öffnen $!";
  print OUTPUT $neudata ;
  close(OUTPUT);
Nun habe ich mit einem Hex-Editor die beiden Dateien atest.txt und btest.txt verglichen und folgendes gesehen.
a) ASCII-Zeichen werden richtig konvertiert (was ja auch identisch ist)
b) auch der erweiterte Bereich z.B. Unicode DF wird richtig nach UTF-8 C39F konvertiert (dies ist das deutsche sz).
c) Aber andere Zeichen z.B. Unicode 2022 wird nicht korrekt nach UTF-8 konvertiert, was dort E280A2 lauten müsste. Es bleibt dort einfach 2022 stehen.

Kann mir hier jemand helfen, wie ich mein Problem in Perl lösen kann?

vielen Dank im voraus

Gerd