当前位置: 首页 > 后端技术 > Node.js

NPM酷库039:iconv-lite,字符串编码转换

时间:2023-04-03 11:43:49 Node.js

NPM酷库,每天两分钟,了解一个流行的NPM库。当我们的程序与外部系统连接时,输入输出的数据往往需要进行编码,因为JavaScript使用的编码是Unicode,外部系统的数据编码可能多种多样。例如,Windows上汉字的编码使用的是GBK。准确地说,JavaScript是使用UCS-2编码的,这是一种非常古老(诞生于1990年)的编码,有些过时了。但由于UTF-16编码完全兼容UCS-2,我们可以“简单”地认为JavaScript是Unicode系统的。比如我们需要用Node.js做一个爬虫程序,而目标网站的页面编码是GBK(肯定是老站点),我们抓取的汉字直接输出会出现乱码,在为了能够正常识别这些汉字内容,我们需要将GBK编码的Buffer转换为JavaScriptUnicode。iconv-liteiconv是Linux系统上一个非常有名的库,它可以在任何编码之间传输数据。我们今天要学习的iconv-lite只是一个简单的版本,但是足够我们使用了。consticonv=require('iconv-lite');//将Unicode字符串转成GBK编码的Bufferletbuf=iconv.encode("Chinesecharacters",'GBK');//这样会输出乱码console.log(buf.toString());//将GBK编码的Buffer数据转为Unicode字符串letstr=iconv.decode(buf,'GBK');//正常输出“汉字”console.log(str);参考https//github.com/ashtuchkin…