nodejs-fetch請求結果中文亂碼
阿新 • • 發佈:2019-01-24
囉嗦事情的起因吧,最近在接入某美的影片介面,按照他們提供的文件試了一個介面,返回的是gbk編碼的xml,服務端用的是nodejs,試了各種編碼轉換依然沒有解決問題,相信努力總會有回報的,參考了https://www.oschina.net/code/snippet_1052456_26611,這篇文章,作者封裝了原生的http請求,而沒有用fetch,其實看到它這篇文章的時候幾乎已經放棄了希望,奢求某美能改下返回的編碼格式。
var httpHelper = require("../utils/httpHelper");非常感謝https://www.oschina.net/code/snippet_1052456_26611的作者var requestPromise = await new Promise((resolve, reject) => { httpHelper.get(url_get, 10000, function (err, data) { resolve(data); }, 'gbk', { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36' }); }).then(function (data) { xml2js.parseString(data, function (err, result) {//xml轉json部分,重點在上邊 if (result.response == null) { return null; } else { dataarray = result.response; } }); }, function (error) { think.logger.debug("請求錯誤" + error.toString()); });