node.js
當中的Buffer
對象支持的編碼格式的種類有限,大概有ascii
、utf8
、utf16le
、ucs2
、base64
、binary
、hex
。不支持GBK
的編碼形式。對於windows
系統來講,因爲歷史緣由,許多文件默認的編碼格式均爲GBK
。node
好比咱們在
windows
系統性新建一個文本文檔,在其內部編輯完中文內容以後,在設置保存時,能夠看到其默認的編碼格式爲ANSI
,即爲GBK
。npm
將這個以GBK
編碼格式編輯的文本文件移動到項目文件夾當中,使用node
當中的fs
模塊對其進行讀取其文本內容。因爲不支持GBK
的編碼,故會出現以下報錯信息。windows
對於那些咱們沒法改變其編碼格式的文件,又須要使用node
來操做其文件內容的,咱們須要引用iconv-lite
來幫助咱們解決編碼轉換的問題。函數
iconv-lite
用於在node
當中處理在各類操做系統出現的各類奇特編碼,該模塊不提供讀寫文件的操做,只提供文件編碼轉換的功能。
一、下載模塊包
在當前項目文件夾的目錄下打開cmd
,在控制檯輸入命令->npm install iconv-lite
。ui
二、引包並使用
使用const iconvLite = require('iconv-lite');
來引用。在fs模塊讀取文件結束以後的回調函數當中,對於data
參數(對應文件的內容)的處理爲iconvLite.decode(data,'gbk');
。即表明對於默認爲buffer
形式的data
當中的內容以gbk
的形式解碼成一個默認爲utf8
編碼格式的字符串。編碼