如何在Lua中获取字符的代码点?

我以前做过,但我不确定怎么做,而且我已经丢失了源文件。

如何在 Lua 中获取一个字符的代码点?或者至少是一个字符的唯一值?

点赞
用户59120
用户59120

对于 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,可能无法在您的本地字体中正确显示)

2012-11-27 06:18:19
用户1442917
用户1442917

以下有几个答案可以满足您的需求(如果限制自己使用UTF8):

2012-11-27 06:36:16
用户1009479
用户1009479

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

print(utf8.codepoint("瑞"))
--29790
2015-01-14 11:18:54