gpt4 book ai didi

json - Unix 或 Linux 上的 CURL 报告为二进制文件并显示控制字符,而不是响应 header 所说的内容,并且在 Windows 上没有问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:09 44 4
gpt4 key购买 nike

当在 Linux slave (MacOS) 上使用 CURL 从 API 将 JSON 消耗到我们的 NodeJS 应用程序中时,我们看到二进制文件,每个字符之间都有控制字符,尽管响应 header 显示正确的内容类型(application/json;charset=utf-16 )

尝试删除控制字符 (json.parse) 会导致 JSON 格式错误。

Windows 上的文本编辑器(notepad、notepad++)在转换文件编码时不显示控制字符

使用“body-parser”似乎也不起作用

curl 命令:

curl -D header.txt -o output.json -XGET "API call that returns JSON output" 

仅当从 API 请求较少的产品数量时,以下代码才替换控制字符:

    if (_.isString(response)) {
var responseString = response
.replace(/[\u0000-\u001F]+/g, '');
}

非 unix/linux 用户使用的 API 没有任何问题。

如果应该在 API 级别进行修复,请告诉我们应该修复什么?

如果修复应该在消费端,请让我们知道应该修复什么?

最佳答案

要修复 API 级别,

在使用 nodejs 应用程序时执行此操作

res.setHeader('Content-Type','application/json; charset=utf-8')

请注意编码utf-8

固定在消费者层面

这样做,(如果是nodejs应用,考虑responseBuffer的一个实例)

const readableResponse = response.toString('utf-8')

关于json - Unix 或 Linux 上的 CURL 报告为二进制文件并显示控制字符,而不是响应 header 所说的内容,并且在 Windows 上没有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48897816/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com