Lua支持Unicode吗?
基于下面的链接,我对Lua编程语言是否支持Unicode感到困惑Lua支持Unicode吗?,unicode,programming-languages,lua,Unicode,Programming Languages,Lua,基于下面的链接,我对Lua编程语言是否支持Unicode感到困惑 看起来确实如此,但有局限性。我只是不明白,这个限制有什么大的/关键的还是没什么大不了的?它支持它,因为您可以在Lua字符串中使用Unicode。这具体取决于您计划做什么,但通过使用您自己的功能扩展Lua,可以相当容易地克服大多数限制。如果您想要简短的回答,请在链接站点上输入“是”和“否” Lua支持Unicode,因为它支持在字符串中指定、存储和查询任意字节值,因此您可以在Lua字符串中存储任何类型的Unicode编码字符串 不
看起来确实如此,但有局限性。我只是不明白,这个限制有什么大的/关键的还是没什么大不了的?它支持它,因为您可以在Lua字符串中使用Unicode。这具体取决于您计划做什么,但通过使用您自己的功能扩展Lua,可以相当容易地克服大多数限制。如果您想要简短的回答,请在链接站点上输入“是”和“否” Lua支持Unicode,因为它支持在字符串中指定、存储和查询任意字节值,因此您可以在Lua字符串中存储任何类型的Unicode编码字符串
不支持的是unicode字符的迭代,unicode字符中没有字符串长度的标准函数等。因此,更高级别的unicode支持(如Python中提供的长度、小写->大写转换、任意编码等)不可用。Lua不支持unicode(除了接受字符串中的任何字节值)。然而,该库有很多unicode字符串函数。例如
unicode.utf8.len
(注意:这个答案完全是从格罗姆对另一个问题的评论中偷来的——我只是认为它应该有自己的答案)您当然可以将unicode字符串存储在lua中,如utf8。您可以像使用任何字符串一样使用这些字符串
但是,Lua不提供对此类字符串的高级“unicode感知”操作的任何默认支持,例如,以字符计算字符串长度、将小写转换为大写等。这种缺失对您是否有意义,取决于您打算对这些字符串执行什么操作
可能的方法,取决于您的使用:
“開発.txt“
然后使用string.find(string_var,”)
在该字符串中搜索“.”,然后使用普通的string.sub
函数将其拆分为”開発"
和“.txt”
,这些结果字符串将是正确的utf8字符串,即使您没有使用任何类型的“unicode感知”算法
类似地,您可以仅对字符串中的ASCII字符(具有高位零的字符)进行大小写转换,并将其余字符串作为二进制处理,而不会将其搞糟11
(“前导字节”表示非ASCII字符)的字符数;长度是这两位的总和utf8
库执行有关UTF-8编码的操作,例如获取UTF-8字符串的长度(而不是像string.len
那样的字节数),匹配每个字符(而不是字节),等等
除了编码之外,它不提供本机支持,比如这个字符是中文字符吗?注意,在底部有链接,可以获得更高级别的Unicode支持。