Supprimer l’UTF8-BOM au début d’un texte (string.strip_utf8_bom)
Déclaration
texteAprès = string.strip_utf8_bom(texteAvant)
Paramètres
- texteAvant
De type texte, texte dont le caractère UTF8-BOM doit être supprimé
Valeur de retour
- texteAprès
De type texte, texte dont le caractère UTF8-BOM a été supprimé
Description
L’UTF8-BOM se présente sous la forme des trois caractères invisibles
"\xEF\xBB\xBF"au début d’un document (dans le code source Lua,\xsuivi de deux chiffres hexadécimaux dans une chaîne représente un octet encodé par ce nombre. Par exemple,\x58représente le caractèreX. Pour les caractères imprimables, consultez l’encodage ASCII).
Exemple
txt = "\xEF\xBB\xBFXXTouch"
sys.alert(txt..', '..#txt) -- Sortie : "XXTouch, 10"
--
txt = string.strip_utf8_bom(txt)
sys.alert(txt..', '..#txt) -- Sortie : "XXTouch, 7"
Remarque : le code ci-dessus utilise la fonction sys.alert, qui n’est pas présentée dans ce chapitre.
Le saviez-vous ?
UTF-8 n’a pas besoin de BOM, même si le standard Unicode autorise l’utilisation d’un BOM en UTF-8. L’UTF-8 sans BOM est la forme standard ; placer un BOM dans un fichier UTF-8 est principalement une habitude de Microsoft (remarque : appeler « Unicode » l’UTF-16 little-endian avec BOM, sans autre précision, est également une habitude de Microsoft). Le BOM (byte order mark, marque d’ordre des octets) est destiné à UTF-16 et UTF-32 afin d’indiquer l’ordre des octets (byte order). Microsoft utilise un BOM en UTF-8 pour distinguer explicitement UTF-8 d’encodages tels qu’ASCII, mais ces fichiers peuvent provoquer des problèmes sur les systèmes d’exploitation autres que Windows. Pour plus d’informations, consultez Wikipedia – Byte order mark.