Convertir un texte encodé en GBK en texte UTF-8 (string.from_gbk)
Déclaration
texteUtilisable = string.from_gbk(texteEncodéGBK)
Paramètres
- texteEncodéGBK
De type texte, texte encodé en GBK à convertir en UTF-8
Valeur de retour
- texteUtilisable
De type chaîne ounil, texte encodé en UTF-8 renvoyé ; renvoienilsi une erreur d’encodage empêche la conversion
Description
Convertit un texte encodé en GBK en texte encodé en UTF-8. Si l’encodage de l’entrée est incorrect, la fonction convertit tout de même les octets selon la table de correspondance ; les caractères illisibles produits ne sont donc pas dus à la fonction. Pour des besoins de conversion plus complexes, consultez luaiconv (bibliothèque de conversion d’encodage). Remarque : l’encodage GBK inclut GB2312 ; utilisez donc aussi cette fonction pour convertir du texte GB2312.
Exemple
-- Encodage chinois, encodage chinois standard, extension de la norme nationale, GB2312
gbkstr = '\x58\x58\x54\x6f\x75\x63\x68\x20\xba\xdc\xc7\xbf'
--
sys.alert(gbkstr) -- Une chaîne encodée en GBK ne peut pas être affichée
sys.alert(string.from_gbk(gbkstr)) -- Sortie : "XXTouch 很强"
Remarque : le code ci-dessus utilise la fonction sys.alert, qui n’est pas présentée dans ce chapitre.
Explication : 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.