我无法看到Lua对其字符串使用的编码。
我正在使用
string.byte (s [, i [, j]])
有doc
返回字符s [i],s [i + 1]的内部数字代码, ···,s [j]。 i的默认值为1; j的默认值是i。 请注意,数字代码不一定是可移植的 平台
阅读周围的人建议它使用ASCII - 这对我来说很好 - 但是我没有得到跨平台的变化 - 我认为使用单一编码(如ASCII)的本质是这不会发生 - 或者它只是说这是因为ASCII没有定义超过126(或127),因此不同的国家/ OEMS / OS等可能使用几十年前的自定义ASCII扩展为上限?
让我知道[a-zA-Z]在我运行的所有平台上都具有相同的char值非常重要。
Lua doc在这里可能会更具体一些!
任何人都可以解决这个问题,这将是很好的事情
答案 0 :(得分:4)
我很确定你可以安全地假设一个ASCII派生的编码。所以你感兴趣的小字符集保持不变。
关于平台之间代码更改的说明可能意味着Lua根本不知道有关字符编码的任何信息,因此只使用操作系统发出的 bytes 。在Linux上,这可能是UTF-8,这意味着当你走出ASCII之外你必须处理单个代码单元。在Windows上我可以想象它是系统的遗留代码页,这意味着在西方世界的大部分地区都有拉丁语1(CP 1252)。