Project1

标题: FileTest.directory?(filename)不识别中文目录 [打印本页]

作者: 赛露休斯    时间: 2014-12-23 16:10
标题: FileTest.directory?(filename)不识别中文目录
我用这个判断 FileTest.directory?(filename)
但他不识别中文目录,只要是中文的一概不行,英文的就可以
似乎VX上的directory?能够识别,就是XP上的不能识别,怎么解决?求教
作者: myownroc    时间: 2014-12-23 17:54
因为中文字符的编码模式和英文的不同。
比较方便的方法就是将文件名更改为英文的。
如果修改的工程量较大则要在读取文件名的时候转换中文的编码模式,详见https://rpg.blue/thread-372489-1-1.html (抱歉,暂时未对这样的情况进行测试)
@晴兰 @taroxd
作者: 欧买歌    时间: 2014-12-23 18:36
将文件名改为英文即可,内容不用。
我测试过的,我签名档的游戏就是介样。
作者: 赛露休斯    时间: 2014-12-23 19:28
比较糟糕的是,
Dir.entries(path)
这个也对中文目录用不了,这样就没有办法获得目录里的文件名了
作者: 573932914    时间: 2014-12-23 20:12
改名字吧←←文件可以用中文貌似
作者: 晴兰    时间: 2014-12-24 21:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: chd114    时间: 2014-12-24 23:47
myownroc 发表于 2014-12-23 00:54
因为中文字符的编码模式和英文的不同。
比较方便的方法就是将文件名更改为英文的。
如果修改的工程量较大则 ...

创建文件可以用中文名啊。。。那这一句脚本到底是做什么的。。。
作者: 赛露休斯    时间: 2014-12-25 12:58
晴兰 发表于 2014-12-24 21:50
还有一个奇怪的hack性质的快捷方案
基于两个事实:
1. open的文件编码工作正常(包括中文也是)

Dir.entries(path)
这个要怎么处理,我是需要获得一个目录(中文名)下的所有文件名和目录名,判断完是否为一个目录后,发现Dir.entries(path)这步还是会因为中文名称而无法正常获得
open可以打开文件,但打不开目录
作者: 晴兰    时间: 2014-12-25 13:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: 赛露休斯    时间: 2014-12-25 16:44
晴兰 发表于 2014-12-25 13:32
这个我目前也只能想到用API转换编码给Dir.entries了,见https://rpg.blue/thread-372489-1-1.html的Di ...

我这边的情况是
Dir.glob,首先在不转码的前提下,如果填的是路径+具体文件名,就算路径和文件名都有中文也能成功获取,如果文件用*匹配且路径有中文就不能获取,如果文件用*匹配且路径没有中文就能成功获取(即便文件名是中文也能成功)。然后我是要获得一个中文目录中所含的文件项名,用* ?这些匹配下来都失败了。
转码的情况,不知道怎么回事,都失败,都是获得空数组,无论是那贴3L的utf8_to_ansi,还是EasyConv::u2s,都失败。然后直接用你写的那个Dir.glob代码改成自己的目录名也失败,换Dir.entries也失败,转码的都失败,我也不知道怎么回事




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1