Thread Unicode UTF-16LE Dateien zusammenfügen oder anhängen (5 answers)
Opened by toppsino at 2008-09-30 20:57

moritz
 2008-10-01 01:17
#115046 #115046
User since
2007-05-11
923 articles
HausmeisterIn
[Homepage]
user image
toppsino+2008-09-30 22:46:43--
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?


Nein, das ist nicht der Fall. Perl behandelt das BOM wie jedes andere Zeichen auch:

Code: (dl )
1
2
$ perl -we 'binmode STDOUT, ":encoding(UTF-16LE)"; print "AB"'|hexdump -C
00000000 41 00 42 00 |A.B.|


Du sieht, dass perl nicht automatisch ein BOM schreibt.

Das Problem ist, dass du probiert hast \x{FFFE} zu entfernen, nicht \x{FEFF}. Die Bytedarstellung ist zwar \x{FF}\x{FE} in little endian, aber beim dekodieren werden ja die beiden bytes verdreht, der Codepoint ist \x{FEFF}.

Bleibt mir noch, dich (wie jeden anderen Unicode-Frager hier) auf meinen Unicode+Perl-Artikel hinzuweisen ;-)

View full thread Unicode UTF-16LE Dateien zusammenfügen oder anhängen