Corona Lua中的string.sub与ÅÄÖ崩溃了。

这个代码片段导致我的模拟器崩溃。

s = "stämma"
s1 =  string.sub(s,3,3)
print(s1)

似乎是将我的字符视为 nil,有任何想法吗? Joakim

点赞
用户1008957
用户1008957

我假设你正在使用 UTF-8 编码。

在 UTF-8 中,一个字符可以由 1 到 4 个变长字节表示。"ä" 字符 (228) 由两个字节 0xC3 0xA4 表示。

指令 string.sub(s, 3, 3) 返回字符串中第三个 字节 (0xC3),而不是第三个字符。由于这个字节本身就是无效的 UTF-8,Corona 无法显示该字符。

另请参阅 使用 Lua 提取 UTF-8 字符串的第一个字符

2012-11-10 23:37:47