Zitat:
ich les an offset 0 der datei das erste byte und bestimme dadurch mit was es codiert wurde.
Falsch!
Bei UTF-8 ist das BOM genau 3 Byte lang.
Im Prinzip ist das mit dem BOM recht einfach zu verstehen, denn es ist zufällig das Unicodezeichen #$FEFF welches mit dem jeweiligen Encoding (Codepage) codiert wurde und was praktisch an erster Stelle des decodierten
Unicode-Textes steht.
siehe $FFFE
http://www.unicode.org/charts/PDF/UFFF0.pdf
https://de.wikipedia.org/wiki/Byte_Order_Mark
Seinen Namen hat das Byte-Order-Mark von den Codes $FF
FE und $
FEFF der UTF-16 / UCS2 in Big Endian und Little Endian.
Bei vielen "Binär"-Dateien ist das Magic-Byte, auch wenn es sich "Byte" nennt oft 2 bis 4 Byte lang.
z.B. "
PE" bei
Portable
Execute, also den kompilierten EXE und
DLL (und
BPL, welche auch "nur" aufgemotzte
DLL sind)
Und was sind "nicht-lesbare (binär) zeichen"?
Bei Chinesisch, Russisch, Swahili und Dergleichen, ist für "uns" Vieles nicht lesbar.