readdir到的中文文件名乱码
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