Encoding Lua 5.3中的utf8库编码不正确

Encoding Lua 5.3中的utf8库编码不正确,encoding,utf-8,lua,Encoding,Utf 8,Lua,我有一个输入字符串“pythön!” 如果我在线进行utf8编码,我会得到: \x70\x79\x74\x68\xC3\xB6\x6E\x21 如果我将其设置为字符串并打印: print("\x70\x79\x74\x68\xC3\xB6\x6E\x21") 我得到:pyth├╢n 当我使用Lua中的utf8库进行utf8编码时,如: c = b:gsub(".",function(s) print(s) return utf8.char(s:byte(

我有一个输入字符串“pythön!”

如果我在线进行utf8编码,我会得到:

\x70\x79\x74\x68\xC3\xB6\x6E\x21

如果我将其设置为字符串并打印:

print("\x70\x79\x74\x68\xC3\xB6\x6E\x21")
我得到:pyth├╢n

当我使用Lua中的utf8库进行utf8编码时,如:

c = b:gsub(".",function(s) print(s) return utf8.char(s:byte()) end)
打印(c)打印输出:pyth┬恩

为什么这两个不同?我还检查了c的代码:

for p,c in utf8.codes(c) do print(p,string.format("%X",c)) end
返回:

1       70
2       79
3       74
4       68
5       94
7       6E
8       21

代码#5不同,缺少#6。为什么会发生这种情况?

gsub(“.”)和
s:byte()
只能使用单字节编码。它们不能处理Unicode文本,明白了!哪个库可以在Lua中获得正确的utf8编码?
gsub(“.”
s:byte()
只能使用1字节编码。它们不能处理Unicode文本,明白了!哪一个库可以在Lua中获得正确的utf8编码?