使用iconv-lite解決node當中不支持GBK編碼的問題

一、Node環境當中不支持GBK編碼

node.js當中的Buffer對象支持的編碼格式的種類有限,大概有asciiutf8utf16leucs2base64binaryhex。不支持GBK的編碼形式。對於windows系統來講,因爲歷史緣由,許多文件默認的編碼格式均爲GBKnode

好比咱們在windows系統性新建一個文本文檔,在其內部編輯完中文內容以後,在設置保存時,能夠看到其默認的編碼格式爲ANSI,即爲GBKnpm

圖片描述

將這個以GBK編碼格式編輯的文本文件移動到項目文件夾當中,使用node當中的fs模塊對其進行讀取其文本內容。因爲不支持GBK的編碼,故會出現以下報錯信息。windows

圖片描述

對於那些咱們沒法改變其編碼格式的文件,又須要使用node來操做其文件內容的,咱們須要引用iconv-lite來幫助咱們解決編碼轉換的問題。函數

二、iconv-lite的使用

iconv-lite用於在node當中處理在各類操做系統出現的各類奇特編碼,該模塊不提供讀寫文件的操做,只提供文件編碼轉換的功能。
一、下載模塊包
在當前項目文件夾的目錄下打開cmd,在控制檯輸入命令->npm install iconv-liteui

圖片描述

二、引包並使用
使用const iconvLite = require('iconv-lite');來引用。在fs模塊讀取文件結束以後的回調函數當中,對於data參數(對應文件的內容)的處理爲iconvLite.decode(data,'gbk');。即表明對於默認爲buffer形式的data當中的內容以gbk的形式解碼成一個默認爲utf8編碼格式的字符串。編碼

圖片描述

相關文章
相關標籤/搜索