Node.js UTF-8 BOM付きのファイル作成(CSVファイルの文字化け抑止)

こんなプログラムでCSVファイルを作成。


  1. const fs = require('fs');
  2. const lines = [
  3.     'フィールド名1,フィールド名2,フィールド名3',
  4.     '値1-1,値1-2,値1-3',
  5.     '値2-1,値2-2,値2-3',
  6.     '値3-1,値3-2,値3-3',
  7. ];
  8. const text = lines.join('\n');
  9. fs.writeFile('output.csv', text, (err) => {
  10.     if (err) throw err;
  11.     console.log('出力しました。');
  12. });



Excelで開くと文字化けします。

a65_01.png


データの先頭にBOM「\ufeff」を付与してやると回避できます。


  1. const fs = require('fs');
  2. const lines = [
  3.     'フィールド名1,フィールド名2,フィールド名3',
  4.     '値1-1,値1-2,値1-3',
  5.     '値2-1,値2-2,値2-3',
  6.     '値3-1,値3-2,値3-3',
  7. ];
  8. // ファイルの最初にBOMを付ける
  9. const text = '\ufeff' + lines.join('\n');
  10. fs.writeFile('output.csv', text, (err) => {
  11.     if (err) throw err;
  12.     console.log('出力しました。');
  13. });



a65_02.png
関連記事

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
https://symfo.web.fc2.com/

PR

検索フォーム

月別アーカイブ