加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Lua是否支持Unicode?

发布时间:2020-12-15 00:23:46 所属栏目:大数据 来源:网络整理
导读:基于以下链接,我对Lua编程语言是否支持Unicode感到困惑。 http://lua-users.org/wiki/LuaUnicode 看来它有但是有限制。我根本不明白,是限制任何大/关键还是不重要的? 解决方法 你可以在lua中存储unicode字符串,如utf8。您可以像任何字符串一样使用这些。
基于以下链接,我对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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读