readdir到的中文文件名乱码
发布于 10 年前 作者 sxd1140 5494 次浏览 最后一次编辑是 8 年前
js var fs = require('fs');
var dir = fs.readdirSync('./');
console.log('这里是能显示中文的');
for (var i in dir) 
 console.log(dir[i]);//这里遇到中文文件名 就出乱码了

windows下正常 vps上就有这个问题 请问怎么解决

Ubuntu 12.04.2

6 回复

这个和你的程序无关,你的这个文件保存的编码方式要改下,改成utf8的,

如果你用的是Sublime, 文件->保存编码方式为->utf8就行了

首先 程序.js 是utf-8的 然后 中文的文件名 文件夹名 都是乱码

@sxd1140 我运行下了你的代码,没有问题,中文的文件和文件夹都正常啊!你的却不正常

已经放弃了 用英文了 感谢回复

Ubuntu系统,默认的编码是Utf8的,而JS里,文字的编码是Unicode的 所以觉得可能是因为这两者编码不一致造成的,可以转一下码看看。

同时代码里代码中文。

遇到了同样的问题. Windows 文件夹或文件名是 GBK 编码, Linux 是UTF8, fs.readdirSync encoding 不支持 GBK. 在Linux 服务器转换文件名称编码: convmv -f gbk -t utf-8 -r --notest /home/xxx -f from -t to -r 递归 –notest actually do rename the files

回到顶部