1. 程式人生 > 其它 >Node fs.writeFileSync 操作中 UTF-8 格式 BOM 缺失

Node fs.writeFileSync 操作中 UTF-8 格式 BOM 缺失

技術標籤:I-nodenodejswriteFileSyncUTF-8BOM亂碼

使用 fs.writeFileSync 生成的 csv 檔案是 UTF-8 不帶 BOM 格式的,導致用 excel 開啟時候不識別為 UTF-8 格式,所以亂碼。

file.js

const { appendFileSync } = require('fs');

appendFileSync('test.csv', '追加的資料', {
  encoding: 'utf8',
  mode: 0o666,
  flag: 'a',
}, (err) => {
  if (err) throw err;
});

執行命令:node file.js

解決辦法:在檔案開關加上 \uFEFF 即可

file.js

const { appendFileSync } = require('fs');

appendFileSync('test.csv', '\uFEFF追加的資料', {
  encoding: 'utf8',
  mode: 0o666,
  flag: 'a',
}, (err) => {
  if (err) throw err;
});

刪除 test.csv 檔案,執行命令:node file.js