CNode

readdir到的中文文件名乱码

Ssxd1140发布于13 年前最后回复8 年前6 回复6519 浏览0 收藏
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)

X
xiuxu123#1·13 年前

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

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

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

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

S
sxd1140#4·13 年前

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

H
hufuman#5·13 年前

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

同时代码里代码中文。

V
vonsy#6·8 年前

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

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