node.js不能很好地支持中文字符,在讀取文件的時候,會出現對中文內容讀取的亂碼問題(linux系統下默認utf-8編碼,一般不會出現該問題,但windows和部分虛擬機由于文件存儲格式不同,可能會存在這個問題)
解決方案有兩種
1.簡便方法
將讀取的源文件格式儲存為utf8編碼格式,讀取源文件的js文件也儲存為utf-8編碼格式,就可以避免中文亂碼顯示
2.最佳方案
若讀取的文件不在本地,我們無法保證文件的存儲為utf-8編碼格式,這個時候我們可以引入一個模塊 ----純Javascript轉換編碼的模塊 iconv-lite,該模塊可以實現window下的轉換 ,通過npm可以安裝此模塊,bufferhelper是一個操作buffer的加強類
首先安裝兩個模塊
npm install iconv-lite
npm install bufferhelper```
//js源代碼 --- 讀取本地input.txt文件
var iconv = require('iconv-lite');
var fs = require('fs');
var fileStr = fs.readFileSync('input.txt', {encoding:'binary'});
var buf = new Buffer(fileStr, 'binary');
var str = iconv.decode(buf,'utf8');
console.log(str); ```
思路:讀取文件->按二進制編碼->再按utf-8解碼