Nele Kosog: Schreiben und lesen von Dateien mit Unicode Zeichen auf Windows

Beitrag lesen

Hallo Beat!

Da ist ein Problem mit deiner Routine.
Du hast Sie so verfasst, als ob sie auf jedes Encoding anwendbar sein sollte, also auch auf Files, die eine BOM beinhalten.
Aus diesem Grund solltest du hier Files im Slurpmode einlesen
     { local $/=undef;
       my $file = decode($encoding, <$rfh>);
     }

Mal davon abgesehen, dass deine Variante um ein Vielfaches schneller ist als meine zeilenorientierte - warum soll ich die Datei slurpen? Ach, weil ich sonst das BOM verliere und eine einzelne Zeile gar nicht interpretieren kann, richtig? Kannst du es kurz erklären?

Und bevor ich es vergesse: Die Funktion CreateFileW kann natürlich mit Devices umgehen. Ich habe den Pfad nicht korrekt angegeben: Mit 'C:\dir\file_name.txt' klappt es!

Danke & viele Grüße,
Nele