我正在使用Lua制作一个关于拼音字母学习游戏的应用程序,我有一个问题,我需要检查拼音的长度,需要检查它是否与我输入的匹配,但我发现所有的拼音字母&#39 ; s长度为2,并且它们与我输入的内容不匹配,示例如下:
print(string.len("ð") -- outcome is: 2
print(string.len("pɛt")) -- outcome is: 4
print(string.sub("pɛt",3)) -- outcome is:›t
我该怎么办?
答案 0 :(得分:2)
string
库不支持UTF-8字符串。试试utf8
库。
答案 1 :(得分:2)
Lua 5.2对非ASCII字符串没有本机支持。 Lua 5.3具有基本的UTF-8支持,所以也许你应该尝试使用Lua 5.3。
答案 2 :(得分:1)
感谢lhf和Cinch,根据你的提示,我终于想出了怎么做,代码如下,如果还有其他更聪明的方法,请告诉我。
一个。通过计算拼音的长度,我只是原始长度减去非单字节字母:
string.len("pɛt")-string.len("pɛt", "[^\128-\193]", ""))
湾通过检查它与我输入的相同,我使用了string.gfind:
for tempLetter in string.gfind("pɛt", "([%z\1-\127\194-\244][\128-\191]*)") do
if theLetterITyped == tempLetter then
--content
else
--content
end
end