Node.js 请求网页文本内容乱码怎么办?

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 请求网页文本内容乱码怎么办?的详细内容,更多请关注其它相关文章!