在云函数里做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"

============解决办法==========
乱码原因,请求的链接内容是GBK编码
引入jsdom和jquery
使用jquery.get方法,可以解决乱码问题
云函数的package.json加入jsdom和jquery"dependencies": {"jquery": "^3.4.1","jsdom": "^15.2.1","wx-server-sdk": "latest"}=============云函数里const cloud = require('wx-server-sdk')const jsdom = require('jsdom');const { JSDOM } = jsdom;const { window } = new JSDOM();const { document } = (new JSDOM('')).window;global.document = document;const jQuery = require('jquery')(window);cloud.init({env: '环境ID'})// 云函数入口函数exports.main = async(event, context) => {return new Promise((rs, rj) => {try {jQuery.get('https://qt.gtimg.cn/q=sz000001', (res) => {rs(res)})} catch (e) {rj(e.message);}})}用php去抓取内容,转码后回传给小程序