【发布时间】:2019-12-07 10:02:30
【问题描述】:
我正在尝试使用来自 API 的数据。我使用request 进行API 访问,但也尝试过axios。
const request = require('request')
request('https://remoteok.io/api', function (error, response, body) {
const data = JSON.parse(body)
console.log(data)
})
在浏览器中访问网站remoteok.io/api 时,我可以看到类似\u00e2\u0080\u0099 的序列。这个序列应该是一个反引号撇号,但是当我在 JavaScript 中登录到控制台或使用express 呈现res.json(body) 时,我得到的字符是â€。
如何解决此编码问题? JSON 不应该总是纯 UTF-8 吗?
更新: 这是显示行为的simple glitch project。
【问题讨论】:
-
您的控制台使用什么编码?
-
另外,实际问题是什么?您希望看到什么?
-
我已将问题更新为更精确...当我使用 express 重新呈现收到的 JSON 时,它会有所不同。到目前为止,我无法找出问题所在。如果是
request或axios或两者中的 JSON 解析问题;或者是否是express的JSON渲染问题;或者如果 API 的实际内容有问题 - 但简单的重新渲染不应转换编码/字符... -
在源头听起来像mojibake。
\u00e2\u0080\u0099不会以任何方式直接解析为反引号。
标签: javascript json encoding request utf