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

Special Characters ÆØÅ not received correct with curl

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

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

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

据我所知,我需要定义字符集。但这没有效果。使用 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。

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

我设法通过将带有丹麦语字符的 json 放入其自己的名为 test.json 的文件中来实现这一点。我确定 - 这是他们的关键 - json 文件被保存为 utf-8:我通过用记事本打开文件并使用 "Save As",选择 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 安静地处理我遇到的错误(写入正文失败),尽管该命令(更新数据库中的记录)看起来 运行 成功。