收藏
回答

在云函数里做http请求,返回的中文是乱码,请问怎么解决?

在云函数里做http请求,能正常返回数据,但是中文显示是乱码如图:


http请求的代码是这样:

var myurl = event.head + event.market + event.number +event.ending

var httpData= new Promise((resolve, reject) => {

request({

url: myurl,

method: "GET",//GET

}, function (error, response, body) {

if (!error && response.statusCode == 200) {

try {

resolve(body)

} catch (e) {

reject()

}

}

})

})

使用了百度的方法:str = str + decodeURI(encodeURI(testArray[1])),转换回来时也还是乱码,请问怎样才能正常显示出中文呢?

请求的其中一个网址:"https://qt.gtimg.cn/q=sz000001"





回答关注问题邀请回答
收藏

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-12-05

    ============解决办法==========

    乱码原因,请求的链接内容是GBK编码

    引入jsdom和jquery
    使用jquery.get方法,可以解决乱码问题




    2019-12-05
    赞同 1
    回复 13
    • 保罗哥
      保罗哥
      2019-12-05
      貌似不行,返回null,返回显示和代码是这样的
      2019-12-05
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-12-05回复保罗哥
      有报错吗
      2019-12-05
      1
      回复
    • 保罗哥
      保罗哥
      2019-12-05回复o0o有脾气的酸奶
      没报错,一切正常,就是返回的值是空的
      2019-12-05
      回复
    • 保罗哥
      保罗哥
      2019-12-06
      出现null的原因是没有在云端安装'iconv-lite'依赖,用之前你教的方法在云端安装了'iconv-lite'之后不返回空值了,但是返回的仍然是乱码
      2019-12-06
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-12-06回复保罗哥
      你自己有服务器吗,用其他语言转码好一点,比如说php
      用php去抓取内容,转码后回传给小程序
      2019-12-06
      1
      回复
    查看更多(8)
登录 后发表内容
问题标签