【问题标题】:NodeJS - Reading image source returns incorrect file sizeNodeJS - 读取图像源返回不正确的文件大小
【发布时间】:2016-05-16 20:58:55
【问题描述】:

这可能是一个基本问题,但想了解如果 source 指的是“图像”或非文本文件路径,为什么使用 fs.readFileSync 读取的文件大小不正确。

例子:

fs.writeFileSync(outputPath, fs.readFileSync(source, 'utf8'));

【问题讨论】:

  • 您不应将二进制文件读取为utf8
  • @AlexeyTen 为什么 OP 不应该这样做?请扩大您的评论
  • 文本编码用于文本(人类可读)文件。图像(除非它们是 SVG)是二进制的。
  • 感谢@AlexeyTen。无论文件内容如何,​​无缝复制两个文件的最佳方式是什么。
  • 最简单的方法是,在你的代码中删除'utf8'

标签: node.js encoding fs


【解决方案1】:

因为您正在调用 fs.readFileSync(source, 'utf8')。

重要的部分是 utf8,你告诉它解码文件,就好像它是 utf8 文本一样。如果它是一个非文本文件,那么它将无法正常工作,从而产生不正确的文件大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多