获取Lua中的代码点?

时间:2012-11-27 05:55:34

标签: unicode lua

之前我已经完成了,但我不确定自从丢失了源文件之后我是怎么做的。

如何获取Lua中角色的代码点?或者,至少是角色的唯一值?

3 个答案:

答案 0 :(得分:2)

对于ASCII字符串,很容易:

local char_code = string.byte("A",1);
-- char_code now contains 65

对于UTF-8(假设你是如何表示数据),它变得棘手。使用像slnunicode这样的第三方库,或者你必须编写自己的函数来传递UTF-8字节。

您的Lua安装可能已包含ValidateUnicodeString扩展程序,这可以使其正常工作:

local char_code = string.utf8code("ٱ");
-- char_code now contains 1649

(该示例包含阿拉伯语Alef Wasla,可能无法以您的本地字体正确显示)

答案 1 :(得分:2)

在Lua 5.3中,您可以使用utf8.codepoint获取UTF-8字符串的代码点。

print(utf8.codepoint("瑞"))
--29790

答案 2 :(得分:1)

有几个答案可能会给你你想要的东西(如果你自己限制为UTF8):