Lua是否支持Unicode?

前端之家收集整理的这篇文章主要介绍了Lua是否支持Unicode?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
基于以下链接,我对Lua编程语言是否支持Unicode感到困惑。

http://lua-users.org/wiki/LuaUnicode

看来它有但是有限制。我根本不明白,是限制任何大/关键还是不重要的?

解决方法

你可以在lua中存储unicode字符串,如utf8。您可以像任何字符串一样使用这些。

然而,Lua并没有提供对这种字符串的更高层次的“unicode感知”操作的任何默认支持,例如,以字符计数字符串长度,从低到高的大小写等。无论这种缺乏对您来说意义重大吗?你打算用这些字符串来做什么。

可能的方法,具体取决于您的使用:

>如果您只想输入/输出/存储字符串,并且通常将它们用作“整个单位”(用于表索引等),则可能根本不需要任何特殊处理。在这种情况下,您只需将这些字符串视为二进制blob。
>由于utf8的巧妙设计,一些类型的字符串操作可以在包含utf8的字符串上进行,并且会在没有特别小心的情况下产生正确的结果。

例如,您可以附加字符串,在ascii字符之前/之后拆分它们。例如,如果您有一个字符串“开発.txt”,并搜索“。”。在该字符串中使用string.find(string_var,“。”),然后使用正常的string.sub函数将其拆分为“开発”和“.txt”,那些结果字符串将是正确的utf8字符串,即使您不是使用任何一种“unicode-aware”算法。

类似地,您只能在字符串中的ASCII字符(高位为零)中进行大小写转换,并将其余字符串视为二进制,而不用拧紧它们。
>某些utf8感知操作非常简单,只需编写自己的功能即可实现。

例如,要计算字符串的unicode字符的长度,只需计算高位零(ASCII字符)的字符数,以及前两位的字符数11(“ ASCII字符);长度是这两个的总和。
>对于更复杂的操作(例如,非ASCII字符的大小写转换等),您可能必须使用Lua unicode库,例如(前面提到的)Lua-users Unicode page

猜你在找的Lua相关文章