Aller au contenu principal

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, \x suivi de deux chiffres hexadécimaux dans une chaîne représente un octet encodé par ce nombre. Par exemple, \x58 représente le caractère X. 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.