Node.js 请求网页文本内容乱码怎么办?
node使用request获取html文本内容编码异常
在node环境中,使用request爬取网页时,可能会遇到响应的body编码异常问题。
具体表现为:浏览器中显示正常的文本,而在node中打印出的却是乱码,如大量“�”字符。
产生此问题的原因是:
- 编码不一致:网页返回的body内容可能是以一种浏览器无法直接识别的编码格式,如GBK,导致node打印乱码。
- 缺少字符集信息:HTTP响应头中可能缺少字符集信息,导致node无法自动识别编码格式。
解决方法:
- 使用合适的编码库:可以尝试使用支持更多编码格式的库,如axios。axios会自动识别并解码响应内容。代码如下:
const axios = require('axios') function getGoods () { axios('https://www.58moto.com/used-car/1470264') .then(res => { console.log(res.data) }) } getGoods()
通过使用axios,无需手动指定编码格式,即可获得正确的解码内容。
以上就是Node.js 请求网页文本内容乱码怎么办?的详细内容,更多请关注其它相关文章!