Lua 字符串长度(utf8 中的西里尔字母)

REU*_*USS 3 string lua symbols utf-8 cyrillic

如何在lua中获取带有西里尔字母符号的字符串的真实长度?

\n\n

如果我使用 string.len("HELLO.") - 我会得到 6

\n\n

但是使用 string.len("\xd0\x9f\xd0\xa0\xd0\x98\xd0\x92\xd0\x95\xd0\xa2") - 我会得到 12(与“#”运算符相同)

\n\n

所以符号的数量没有改变,但是我们得到了不同的数字...\n这是因为西里尔字母符号有两个字节,而英文字母、数字等有1个。\n我想知道如何获得字符串的正确长度和真实长度(在两个示例中都得到 6)。\n每个人都可以提供帮助吗?

\n

lhf*_*lhf 5

string.len#计算字节数,而不是字符数

在 Lua 5.3+ 中,使用utf8.len.