使用iconv-lite解决node当中不支持GBK编码的问题
1、Node環(huán)境當(dāng)中不支持GBK編碼
node.js當(dāng)中的Buffer對(duì)象支持的編碼格式的種類有限,大概有ascii、utf8、utf16le、ucs2、base64、binary、hex。不支持GBK的編碼形式。對(duì)于windows系統(tǒng)來說,由于歷史原因,許多文件默認(rèn)的編碼格式均為GBK。
比如我們?cè)趙indows系統(tǒng)性新建一個(gè)文本文檔,在其內(nèi)部編輯完中文內(nèi)容之后,在設(shè)置保存時(shí),可以看到其默認(rèn)的編碼格式為ANSI,即為GBK。
將這個(gè)以GBK編碼格式編輯的文本文件移動(dòng)到項(xiàng)目文件夾當(dāng)中,使用node當(dāng)中的fs模塊對(duì)其進(jìn)行讀取其文本內(nèi)容。由于不支持GBK的編碼,故會(huì)出現(xiàn)如下報(bào)錯(cuò)信息。
對(duì)于那些我們無法改變其編碼格式的文件,又需要使用node來操作其文件內(nèi)容的,我們需要引用iconv-lite來幫助我們解決編碼轉(zhuǎn)換的問題。
2、iconv-lite的使用
iconv-lite用于在node當(dāng)中處理在各種操作系統(tǒng)出現(xiàn)的各種奇特編碼,該模塊不提供讀寫文件的操作,只提供文件編碼轉(zhuǎn)換的功能。
1、下載模塊包
在當(dāng)前項(xiàng)目文件夾的目錄下打開cmd,在控制臺(tái)輸入命令->npm install iconv-lite。
2、引包并使用
使用const iconvLite = require('iconv-lite');來引用。在fs模塊讀取文件結(jié)束之后的回調(diào)函數(shù)當(dāng)中,對(duì)于data參數(shù)(對(duì)應(yīng)文件的內(nèi)容)的處理為iconvLite.decode(data,'gbk');。即代表對(duì)于默認(rèn)為buffer形式的data當(dāng)中的內(nèi)容以gbk的形式解碼成一個(gè)默認(rèn)為utf8編碼格式的字符串。
總結(jié)
以上是生活随笔為你收集整理的使用iconv-lite解决node当中不支持GBK编码的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络和传统电话网络的最大区别是,传
- 下一篇: 计算机组成原理tec9,(15-16-2