2016-05-16 10 views
-1

これは基本的な質問ですが、sourceが「画像」またはテキスト以外のファイルを参照している場合は、fs.readFileSyncを使用して読み取られるファイルのサイズが正しくない理由を理解したがっています。パス。NodeJS - 画像ソースの読み取りで不正なファイルサイズが返される

例:

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

+2

バイナリファイルを 'utf8'として読み込むべきではありません。 –

+0

@AlexeyTenなぜOPはそれをしてはいけないのですか?あなたのコメントを拡大してください –

+0

テキストエンコーディングは、テキスト(人間が判読可能な)ファイルに使用するためのものです。画像は(SVGでない限り)バイナリです。 –

答えて

1

あなたがfs.readFileSyncを呼び出しているので(ソース 'UTF8')。

重要な部分はutf8です。ファイルをutf8のようにデコードするように指示しています。それが非テキストファイルの場合、正しく動作せず、不正なファイルサイズが生成されます。

関連する問題