更改某些字符的 cURL 响应编码

更改某些字符的 cURL 响应编码

以下 curl 命令的响应是 json,其中包含一些以 utf-8 显示的日文字符。我无法共享 URL,但这是我发送请求的方式。

curl https://some-url --header "Content-Type:application/json" --data '{"key":"value"}' 

响应是:

{
  "Name" : "\u6545\u90f7\u306e\u5bb6",
  "id" : 5
}

但是当我将响应传递给json_pp它时,它工作正常并显示日文字符。问题是出于某些原因我不想使用json_pp。有没有可以在不安装某些外部库的情况下工作并且适用于能够运行 shell 命令的 Mac/Linux 和 Windows 机器的替代方案。

答案1

我已经找到了答案。下面的解决方案对我来说很有效。谢谢。

在 json 响应中的 " 之前添加 \ ,需要继续执行 python 命令

output_with_slashes=$(echo "'$output'" | sed 's/"/\\"/g')

将 \u 附加字符 (UTF) 转换为日语/特殊符号

echo '["'$output_with_slashes'"]' | python -c 'import json, sys; sys.stdout.write(json.load(sys.stdin)[0].encode("utf-8"))'

相关内容