【问题标题】:Special characters in node.js readdir()node.js readdir() 中的特殊字符
【发布时间】:2011-12-06 00:13:21
【问题描述】:

我在 node.js 中运行这段代码是为了查看目录中的文件并查看它们的统计信息:

var getFiles = function (dir, done) {
  fs.readdir(dir, function (err, files) {
    if (err) return done(err);
    var pending = files.length;
    files.forEach(function (file) {
      fullPath = dir + "/" + file;
      console.log(fullPath);
      fs.stat(fullPath, function (err, stat) {
        if (err) {
          console.log("Stat error");
        } else if (stat && stat != undefined) {
          console.log("Success");
        }
      });
    });
  });
}

我的问题是包含特殊字符的文件名。我是瑞典人,所以有很多 å、ä 和 ö。当输出大多数文件名时,fullPath 的输出是正确的,但只要文件名包含特殊字符,该字符就会显示为“?”,然后 fs.stat 失败,因为它找不到文件。我错过了什么?我在 Windows 上运行 v0.5.7 版本。
提前致谢。

【问题讨论】:

    标签: javascript node.js fs


    【解决方案1】:

    我认为问题在于 Windows 将文件名编码为 ISO-whatever,但节点将它们读取为 utf8。尝试使用iconv 将iso转换为utf8。

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 1970-01-01
      • 2013-02-25
      • 1970-01-01
      • 2014-11-03
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      相关资源
      最近更新 更多