跳到主要内容
CNode

readdir到的中文文件名乱码

社区
Ssxd1140发布于 13 年前最后回复 8 年前
665390
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)

V
vonsy#68 年前

遇到了同样的问题. 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

H
hufuman#513 年前

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

同时代码里代码中文。

S
sxd1140#413 年前

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

X
xiuxu123#313 年前
引用 xiuxu123这个和你的程序无关,你的这个文件保存的编码方式要改下,改成utf8的, 如果你用的是Sublime, 文件 保存编码方式为 utf8就行了

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

X
xiuxu123#113 年前

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

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

参与回复

登录后即可参与回复。登录