BOM ist das Byte-Order-Mark. Darüber wird festgelegt, in welcher Reihenfolge die Bytes für ein Zeichen in die Datei geschrieben werden, falls für die Codierung mehr als ein Byte benutzt wird. Der Unterschied zwischen UTF16LE und -BE liegt dann in der Reihenfolge, wie die (meistens) 2 Bytes geschrieben werden. Das BOM dafür ist iirc $FFFE bzw. $FEFF. Für UTF-8 $EF BB BF.
Mit UTF-8 macht man
imho nichts verkehrt, auch unter Windows nicht.
im Windows war dagegen es vor allem früher Gang und Gebe, dass Dateien ohne BOM meistens
ANSI sind, bzw. unter DOS noch OEM waren.
Nuja, in älteren Windows (d.h. XP, ggf. auch noch Windows 7) gab es da aber auch so komische Heuristiken, z.B. in Notepad. Wenn man damit eine neue Textdatei erstellt hat und "Blödsinn" reingeschrieben hat, dann sah man beim nächsten Öffnen nur 4 chinesische Zeichen. Die 16-Byte-
ANSI-Datei wurden für UTF16 gehalten.
The angels have the phone box.