answdl 发表于 2021-8-23 21:28

lua语言字符输出问题



string.char(233)和字符é是同等的为什么怎么输出的结果不一样
print(string.char(233))
print("é")

wangyujie96 发表于 2021-8-23 21:28

CE LUA使用UTF-8,而233->"é"是ANSI的阿拉伯文-Windows1256
使用 string.char(0xC3,0xA9) 即可正确输出"é"

附:
string.byte()##
原型:string.byte (s [, i [, j] ])
解释:函数返回字符s, s, ···, s的内部数字编码(ASCII码),其中参数i的默认值是1,而参数j的默认值是i。需要注意的是该函数在返回的数字编码在跨平台方面不一定是可移植的。

作者:AlbertS
链接:https://www.jianshu.com/p/c8fa4516f20b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Jack2002 发表于 2021-8-24 03:45

没用过LUA,可能是 string.char 处理不了部分特殊字符,参考 https://blog.csdn.net/u011755031/article/details/49338933

dadashuai 发表于 2021-8-24 09:29

print(string.char(195,169)) 可以输出这个,如果不行,试试 print(string.char(168,166))

参考代码:
print("\xa8\xa6")
print("\xc3\xa9")
print("é")
print(string.char(195,169))
print(string.char(168,166))

answdl 发表于 2021-8-24 10:49

处理UTF-8字符的函数:utf8.char(参数)
处理ASCII字符的函数:string.char(参数)

作者:知则 https://www.bilibili.com/read/cv85034 出处:bilibili
作者:cherishpf 链接:https://www.jianshu.com/p/dcbb6b47bb32 出处:简书
页: [1]
查看完整版本: lua语言字符输出问题