Lua 5.3 中的 utf8 库编码错误

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

如果我在网上使用 UTF-8 编码器 [这里] (https://mothereff.in/utf-8) 进行编码,我会得到:

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

如果我将其转化为字符串并打印:

print("\x70\x79\x74\x68\xC3\xB6\x6E\x21")

我得到:pyth├╢n!

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

c = b:gsub(".",function(s) print(s) return utf8.char(s:byte()) end)

print(c) 输出结果为:pyth┬ön!

为什么这两者有差别? 我还检查了代码:

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 缺失是为什么?

点赞