特殊字符ÆØÅ没有收到正确的卷曲

时间:2017-01-02 08:29:59

标签: json curl strongloop

我是从curl发送到使用REST API的服务,我不明白为什么服务器没有收到特殊字符ÆØÅ正确。

当我在CMD中从curl执行此操作时,服务器正在接收丹麦字符ÆØÅ不正确。

当我使用浏览器时,通过StrongLoop API,正确插入了字符。

据我所知,我需要定义charset。但这没有效果。使用chcp 65001和Lucida Console字体没有帮助。我有点迷失了这个问题。

这是使用的命令:

curl -X POST -H "Content-Type: application/json; charset=UTF-8" -H "Accept: application/json" -d "{  \"metadata\": {    \"user\": \"aa\",    \"version\": \"ED\",    \"transaction_date\": \"2016-12-30\",    \"context_info\": \"string\"  },  \"container\": {    \"type\": \"SC\",    \"type_source\": \"string\",    \"op_status_source\": \"string\",    \"identification\": \"øæå\",  \"id_source\": \"876332d2321\",    \"ver\": 0  }}" "http://xx.com/xx/containers?access_token=xxx

回应:

{"type":"SC","type_source":"string","op_status_source":"string","identification":"���","id_source":"8763wwd32d2321","ver":1}

æøå可能是∩┐╜∩┐╜∩┐╜“, 或类似的,具体取决于chcp。

另请注意,控制台将正确显示æøå,但不会显示响应。

1 个答案:

答案 0 :(得分:0)

我设法通过将带有丹麦字符的json放在自己的文件test.json中来实现这一点。我确定 - 这是关键 - json文件保存为utf-8:我用记事本打开文件并使用"另存为",选择utf-8编码作为文件编码

在包含curl命令的bat文件的顶部,我输入了chcp 65001。

curl.exe -X PUT --header "Content-Type: application/json; charset=UTF-8" --header "Accept: application/json"  -s -d @test.json "<theUrl>"

我添加了-s以使curl对我遇到的错误(写入正文失败)保持安静,尽管命令(更新数据库中的记录)似乎成功运行。