给 Lua 在 windows 下换上 utf-8 文件名支持
最近在 windows 做开发比较多,lua 原生库使用的都是 C 标准库中的函数,比如文件操作就是用的 fopen 打开文件。这对 unicode 支持的很糟糕。我希望所有和文件名打交道的地方都使用 utf-8 编码,所以今天花了一点时间实现了这么一个库。
我把 lua 原生库中和文件名有关的 api 都重新实现了一遍,包括了:loadfile , dofile , os.rename , os.remove , os.execute, os.getenv , 以及 io.open 。除了 require 都可以在接口上使用 utf-8 字符串了。这里 require 是偷懒没支持 :)
用的比较多的 lfs 库也缺乏 utf-8 支持,我挑选了一部分 api 改写了 utf-8 版本。其中包括 lfs.dir , lfs.currentdir, lfs.chdir, lfs.touch, lfs.mkdir, lfs.rmdir, lfs.attributes 。
对于 windows 还有两个特别的新 api 很可能用得上:
winfile.shortname 可以用来获取短文件名,这样可以很好的去除掉长文件名中的空格。
winfile.personaldir 用来获取 My Document 目录。我可不想在 windows 下使用注册表来保存数据,还是去我的文档下建个目录来存放比较好。
最后: github 仓库传送门
Comments
Posted by: December172 | (19) April 11, 2022 01:58 PM
Posted by: 扑来树袋熊 | (18) November 8, 2017 03:20 PM
Posted by: ccc | (17) November 7, 2017 11:09 PM
Posted by: Cloud | (16) November 7, 2017 08:30 PM
Posted by: ccc | (15) November 6, 2017 11:25 PM
Posted by: Cloud | (14) November 6, 2017 09:11 PM
Posted by: CCC | (13) November 6, 2017 03:45 PM
Posted by: CCC | (12) November 6, 2017 03:39 PM
Posted by: CCC | (11) November 6, 2017 03:34 PM
Posted by: ccc | (10) November 6, 2017 03:27 PM
Posted by: Cloud | (9) November 6, 2017 10:00 AM
Posted by: cc32 | (8) November 6, 2017 01:17 AM
Posted by: snow | (7) October 30, 2017 09:32 PM
Posted by: 云风网络 | (6) October 26, 2017 02:56 PM
Posted by: pig09 | (5) October 26, 2017 02:15 PM
Posted by: actboy168 | (4) October 26, 2017 01:02 PM
Posted by: dwing | (3) October 26, 2017 12:24 PM
Posted by: actboy168 | (2) October 26, 2017 09:23 AM
Posted by: ryd994 | (1) October 26, 2017 07:08 AM