node NPM库qs iconv-lite字符串编码转换及解析URL查询学习
NPM酷库
每天两分钟,了解一个流行NPM库。
querystring库
Node.js 标准库中有一个库叫querystring,这个库用来处理URL查询字符串:
const querystring = require('querystring'); querystring.parse('foo=bar&baz=1'); // { foo:'bar', baz: '1' }
但是很遗憾,querystring 不支持内嵌对象和数组:
const querystring = require('querystring'); querystring.parse('foo[bar]=1&baz[]=2'); // { 'foo[bar]': '1', 'baz[]': '2' }
如果我们程序的前端界面form表单中存在数组,标准库的querystring就无法满足我们的需求了。
qs
qs 是querystring的增强版本,最重要的特性就是支持内嵌对象和数组:
const qs = require('qs'); qs.parse('foo[bar]=1&baz[]=2'); // { foo: { bar: '1' }, baz: [ '2' ] }
参考资料
iconv-lite 库
我们的程序与外部系统对接时,输入输出的数据经常需要做编码转换,因为JavaScript采用的编码是Unicode,而外部系统的数据编码可能是多种多样的,比如Windows上的汉字编码使用的是GBK。
准确地说,JavaScript的编码采用的是UCS-2,这是一个很古老的(1990年诞生)有些过时的编码。但是因为UTF-16编码完全兼容UCS-2,所以我们可以“简单”认为JavaScript是Unicode系的。
比如,我们需要使用Node.js做一个爬虫程序,而目标网站页面编码是GBK(那一定是一个古老的站点),我们抓取过来的汉字内容直接输出会显示出乱码,为了能够正常识别这些汉字内容,我们需要将GBK编码Buffer转换为JavaScript的Unicode。
iconv 是Linux系统上非常著名的库,它可以将数据在任何编码间互转。今天我们要了解的iconv-lite只是一个简单版本,但已经足够我们使用。
const iconv = require('iconv-lite'); // 将Unicode字符串转换为GBK编码的Buffer let buf = iconv.encode("汉字", 'GBK'); // 这样会输出乱码 console.log(buf.toString()); // 将GBK编码的Buffer数据转换为Unicode字符串 let str = iconv.decode(buf, 'GBK'); // 正常输出 “汉字” console.log(str);
参考资料
https://github.com/ashtuchkin...
以上就是node NPM库qs iconv-lite字符串编码转换及解析URL查询学习的详细内容,更多关于node NPM库qs iconv-lite的资料请关注脚本之家其它相关文章!
相关文章
浅谈Node.js轻量级Web框架Express4.x使用指南
本篇文章主要介绍了浅谈Node.js轻量级Web框架Express4.x使用指南,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-05-05解决npm install版本不匹配问题: npm ERR! code ETARGET npm ERR!
这篇文章主要介绍了如何解决npm install版本不匹配问题: npm ERR! code ETARGET npm ERR! notarget No matching version found for,文中给出了详细的解决方法,需要的朋友可以参考下2024-02-02使用NodeJS 5分钟 连接 Redis 读写操作的详细过程
这篇文章主要介绍了NodeJS 5分钟 连接 Redis 读写操作,本文给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-07-07
最新评论