2

我看不到 Lua 对其字符串使用什么编码。

我在用着

string.byte (s [, i [, j]])

其中有文档

返回字符 s[i]、s[i+1]、···、s[j] 的内部数字代码。i 的默认值为 1;j 的默认值为 i。 请注意,数字代码不一定可以跨平台移植

阅读周围的人建议它使用 ASCII - 这对我来说很好 - 但我没有得到跨平台的变化 - 我认为使用单一编码(如 ASCII)的本质是这不会发生 - 或者它只是这么说ASCII 没有定义超过 126 个(或 127 个),因此不同的国家/OEM/OS 等可能使用几十年前的自定义 ASCII 扩展作为上限?

重要的是我知道 [a-zA-Z] 在我运行的所有平台上都将具有相同的 char 值。

Lua 文档在这里可能更具体一点!

任何人都可以对此有所了解的任何人都会很棒

4

1 回答 1

4

我相当确定您可以安全地假设一个 ASCII 派生编码。因此,您感兴趣的微小字符集保持不变。

关于平台之间代码更改的注释可能意味着 Lua 根本不了解字符编码,因此只使用操作系统发出的任何字节。在 Linux 上,这很可能是 UTF-8,这意味着当您跳出 ASCII 时,您必须处理单独的代码单元。在 Windows 上,我可以想象它是系统的遗留代码页,这在西方世界的大部分地区意味着拉丁 1 (CP 1252)。

于 2013-07-26T11:28:33.777 回答