lua 中的注音字体

Phonetic fonts in lua

我正在使用Lua制作一个关于拼音字母学习游戏的应用程序,我有一个问题,我需要检查音标的长度,并需要检查它是否与我输入的匹配,但我发现所有拼音字母的长度都是2,并且与我输入的不匹配,示例如下:

print(string.len("ð")       -- outcome is: 2
print(string.len("pɛt"))    -- outcome is: 4
print(string.sub("pɛt",3))  -- outcome is:›t

我该怎么办?

string 库不支持 UTF-8 字符串。试试 utf8 库。

Lua 5.2 没有对非 ASCII 字符串的原生支持。 Lua 5.3 有基本的 UTF-8 支持,所以也许你应该尝试使用 Lua 5.3.

谢谢lhf和Cinch,在你们的指点下,我终于知道怎么做了,代码如下,如果有其他更聪明的方法,请告诉我。

一个。通过计算拼音的长度,我只是将原始长度减去非单字节字母:

string.len("pɛt")-string.len("pɛt", "[^8-3]", ""))

b。通过检查它是否与我输入的相同,我使用 string.gfind:

for tempLetter in string.gfind("pɛt", "([%z-74-4][8-1]*)") do
        if theLetterITyped == tempLetter then
              --content
        else
              --content
        end
    end