Ich spendiere mal etwas code, vielleicht hilft das ...
moritz+2008-09-30 20:19:40--In der anzuhängenden Datei einfach ein $string =~ s/\A\x{FEFF}//; vor dem Schreiben machen (das geht davon aus, dass die Datei ordentlich dekodiert wurde).
Ich bekomme es leider nicht hin!
Die Datei datei1.utf enthält zum Beispiel
AB
CD
Das ist dann -> FF FE 41 00 42 00 ...
Wenn ich die Datei noch mal anhänge (s.u.) dann bekomme ich
FF FE 41 00 42 00 ....
FF FE 41 00 42 00 ....
Ich dachte wenn ich die Datei korrekt lese - encoding(UTF-16LE) - dann habe ich kein FF FE das ich entfernen könnte. Kommt das nicht erst wieder beim schreiben hinzu? Sorry für die blöden Fragen, aber ich kenne mich noch nicht so gut mit Perl aus.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# UTF-16LE Dateien zusammenfügen
#This is perl, v5.8.8 built for MSWin32-x86-multi-thread
use strict;
my $in="datei1.utf";
my $out="datei2.utf";
my $ZEILE="";
open (IN,"<:encoding(UTF-16LE)","$in") || die "Kann $in nicht öffnen! $!";
open (OUT,">>:raw:encoding(UTF-16LE)","$out") || die "Kann $out nicht öffnen! $!";
while ($ZEILE=<IN>) {
# Hier könnte man dann alles mögliche mit $zeile machen
$ZEILE =~ s/\A\x{FFFE}//;
print OUT "$ZEILE";
}
close IN;
close OUT;