@@pl
Genau. Und für dieses Zeichen hat man sich entschieden, weil es vermutlich keinen sinnvollen Anwendungsfall dafür gibt, dass es am Anfang eines Textes stehen muss.
Wenn man das so sieht, ist das ja noch ungeschickter als es auf den ersten Blick den Anschein hat.
Im Gegenteil. Man hat sich geschickt für ein Zeichen entschieden,
Genau da ist schon der Denkfehler: In Dateien gibt es keine Zeichen.
das am Textanfang nichts bewirkt (außer die Byte-Reihenfolge anzugeben): das nullbreite nicht-umbrechende Leerzeichen (U+FEFF zero-width no-break space, ZWNBSP).
Dieses Zeichen selbst gibt keine Byte-Reihenfolge an. Es wird in der Textverarbeitung als ZERO WIDTH NO-BREAK SPACE verwendet und hat, je nach Kodierung, in Dateien eine unterschiedliche Bytesequenz.
Später kam man drauf, dass es vielleicht doch nicht ganz so geschickt ist, dass ein Zeichen am Textanfang noch eine andere Bedeutung hat als im Textinneren. U+FEFF mag noch die Bezeichnung ZWNBSP haben, seine Verwendung als nullbreites nicht-umbrechendes Leerzeichen ist aber missbilligt. Stattdessen ist dafür U+2060 (word joiner, WJ) zu verwenden.
U+FEFF soll nur noch ausschließlich am Dateianfang als BOM verwendet werden.
Du redest vom Codepoint. In Dateien stehen aber keine Codepoints. Codepoints wie U+FEFF gibt es nur im Unicode, da werden sie verwaltet. Und wie der Wiki zeigt, gibt es 11 verschiedene Möglichkeiten der Kodierung, also gibt es auch 11 verschiedene Möglichkeiten an Bytesequenzen. Und der Fakt, daß man sich ab 2 Byte, welche dieselbe Zahl darstellen sollen, auf eine bestimmte Byte Order einigen muss, hat mit Zeichenkodierungen auch nichts zu tun.
Der Begriff Little/Big Endian bezieht sich also ursprünglich auf gleiche Zahlen und nicht auf gleiche Zeichen.
MfG