Converter texto codificado em GBK para UTF-8 (string.from_gbk)
Declaração
texto_utilizável = string.from_gbk(texto_codificado_em_GBK)
Parâmetros
- texto codificado em GBK
Texto; texto codificado em GBK que deve ser convertido para UTF-8.
Valor retornado
- texto utilizável
String ou nil; retorna o texto codificado em UTF-8. Retorna nil se um erro de codificação impedir a conversão.
Descrição
Converte texto codificado em GBK para UTF-8.
Se a entrada já estiver com a codificação incorreta, a função ainda converterá os bytes conforme o mapeamento; o texto ilegível resultante não é um problema da função.
Para necessidades de conversão mais complexas, consulte luaiconv (biblioteca de conversão de codificação).
Observação: a codificação GBK inclui a codificação GB2312; portanto, use também esta função para converter texto GB2312.
Exemplo
-- codificação chinesa; codificação chinesa padrão; extensão do padrão nacional; GB2312
gbkstr = '\x58\x58\x54\x6f\x75\x63\x68\x20\xba\xdc\xc7\xbf'
--
sys.alert(gbkstr) -- a string codificada em GBK não pode ser exibida
sys.alert(string.from_gbk(gbkstr)) -- exibe "XXTouch 很强"
Observação: o código acima usa a função sys.alert, que não pertence a este capítulo.
Explicação: no código-fonte Lua, \x seguido de dois dígitos hexadecimais em uma string representa um único byte codificado por esse número. Por exemplo, \x58 representa o caractere X; para a parte dos caracteres imprimíveis, consulte codificação ASCII.