Lua 5.2 - utf8 lower function - 是否存在纯 Lua 实现?

我无法在纯 Lua 中找到任何好的实现方法来处理 utf8 字符串的 string.lower 函数。其中要么是一个 C++ 库,我无法在项目中使用 C 部分,要么是所谓的 '实现',其中 utf8.lower 简单地默认为 string.lower。显然这样不起作用。

有什么解决办法吗?也许有人可以提示如何实现这个函数吗?

点赞
用户734069
用户734069

在Unicode中执行大小写转换(无论编码方式如何)并不是一个简单的练习。实现Unicode大小写转换需要访问Unicode字符属性表,算法本身并不仅仅是“如果字符是大写,则替换为小写版本”,因为许多语言并没有所有字符的1:1大小写转换映射。

这并不是说不能做到。但大多数需要进行严格Unicode工作的人之所以默认使用ICU或其他库而不是编写自己的程序,是有一定理由的。

2017-12-17 22:33:40