UTF8-BOM am Textanfang entfernen (string.strip_utf8_bom)
Deklaration
Verarbeiteter_Text = string.strip_utf8_bom(Unverarbeiteter_Text)
Parameter
- Unverarbeiteter_Text
Text; Text, aus dem das UTF8-BOM entfernt werden soll
Rückgabewert
- Verarbeiteter_Text
Text; Text ohne UTF8-BOM
Beschreibung
Ein UTF8-BOM besteht aus den drei unsichtbaren Zeichen
"\xEF\xBB\xBF"am Anfang eines Dokuments (im Lua-Quellcode bezeichnet ein String mit\xgefolgt von zwei Hexadezimalziffern ein einzelnes Byte, das mit dieser Zahl kodiert ist. Zum Beispiel bezeichnet\x58das ZeichenX; ausdruckbare Zeichen siehe „ASCII-Kodierung“).
Beispiel
txt = "\xEF\xBB\xBFXXTouch"
sys.alert(txt..', '..#txt) -- Ausgabe "XXTouch, 10"
--
txt = string.strip_utf8_bom(txt)
sys.alert(txt..', '..#txt) -- Ausgabe "XXTouch, 7"
Hinweis: Der obige Code verwendet die Funktion sys.alert aus einem anderen Kapitel.
Wissenswertes
UTF-8 benötigt kein BOM, obwohl der Unicode-Standard die Verwendung eines BOM in UTF-8 erlaubt.
UTF-8 ohne BOM ist die Standardform. Ein BOM in UTF-8-Dateien zu platzieren, ist vor allem eine Gewohnheit von Microsoft (Anmerkung: Auch die Bezeichnung von BOM-little-endian-UTF-16 als „Unicode“ ohne nähere Angabe ist eine Gewohnheit von Microsoft).
BOM (Byte Order Mark) wurde für UTF-16 und UTF-32 entwickelt, um die Byte-Reihenfolge (Byte Order) zu kennzeichnen. Microsoft verwendet BOM in UTF-8, um UTF-8 und ASCII eindeutig zu unterscheiden; solche Dateien können jedoch auf Betriebssystemen außerhalb von Windows Probleme verursachen. Weitere Informationen siehe Wikipedia – Byte order mark.