lua中的语音字体

时间:2015-04-04 07:50:45

标签: string lua

我正在使用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

我该怎么办?

3 个答案:

答案 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