Node.js讀取文件亂碼問題

先說點什麼

終於正式開始鼓搗Node了,新的踩坑也就開始了linux

進入正題

產生緣由

Windows系統下默認的編碼格式是ASNI,而在Node和linux系統上默認的是utf-8,再有就是異步讀取文件時不能保證文件的存貯的編碼格式npm

解決方法

  1. 將讀取的源文件格式儲存爲utf8編碼格式,讀取源文件的js文件也儲存爲utf-8編碼格式
  2. 安裝iconv-lite模塊,實現window系統下編碼格式的轉換,npm install iconv-lite
let fs = require("fs");
let iconv = require("iconv-lite");

// 異步讀取
fs.readFile("input.txt", function (err, data) {
   if (err) {
       return console.error(err)
   }
   console.log("異步讀取: " + iconv.decode(data, 'gbk'));
});

// 同步讀取
let data = fs.readFileSync("input.txt");
console.log("同步讀取: " + iconv.decode(data, 'gbk'));

console.log("程序執行完畢!");
相關文章
相關標籤/搜索