fs读取文件,文件名中文,提示找不到文件
发布于 10 年前 作者 zhaochunyu 5676 次浏览 最后一次编辑是 8 年前

现在有一个需求,读取gbk文件,当然,难点在于文件名的格式为gbk的,并且有中文。node fs怎么读取啊?请各位指教。 实践: 1、将文件名转换成gbk格式的。

var buf = iconv.encode('中文文件名.txt', 'GBK');
    buf= buf.toString();
var text = fs.readFileSync(buf,'utf-8');

错误:提示找不到文件。

2、直接使用

var text = fs.readFileSync('中文文件名.txt','utf-8');

错误:提示找不到文件。

3 回复

有没有人帮助啊,我在线等!脑子里头都是乱码了……

你的这段代码:

var buf = iconv.encode('中文文件名.txt', 'GBK');
    buf= buf.toString();
var text = fs.readFileSync(buf,'utf-8');

所在的文件,存储的时候使用编码是什么?改成utf-8试下。

问题解决了,曲线救国。因为系统编码也是gbk的。所以采用如下方式: 将需要读取的中文文件 使用ssh命令进行读取 1、将ssh命令 cat 和中文文件名同时 转换成 gbk编码写入文件。 2、对该文件进行可执行修改。chmod 755 3、通过node调用,执行该文件,并接收执行返回。 4、将执行返回进行utf8转换。生存新文件。

回到顶部