CURL不编码UTF-8

我正在使用Windows 10curl 7.52.1 。 当我尝试将数据发布到WEBSERVICE时, curl不会将字符编码为UTF-8 (我需要显示pt-BR字符,如àáçÇãõ等)

是的,我已经检查了这个 ,没有成功。

如果我将编码页面设置为chcp 65001 ,则错误仍然存​​在。 更改为chcp 1252部分解决了问题。

看,如果我在没有任何chcp更改的情况下提示echo Administração >> test.txt ,我会得到一个Administra‡Æo

更改为chcp 65001我获得了Administração

更改为chcp 1252我终于获得了Administração

但是使用curl,没有任何改变。

我已经尝试设置标题内容类型 ,没有幸运:

 curl -X POST -h "Content-Type: text/plain; charset=UTF-8" --data-ascii "name=Administração" http//:localhost:8084/ws/departments 

我得到以下输出:

{"holder":{"entities":[{"name":"Administra��o","dateReg":"Dec 29, 2016 2:05:33 PM"}],"sm":{}},"message":{"text":""},"status":-1}

当我运行时(在JQuery )我还检查了它接受字符编码的WS

 $.ajax({ url:"http://localhost:8084/ws/departments", type:"POST", data: {name: "Administração"}, success: function(data, textStatus, xhr){ console.log(data); } }); 

我得到了预期的输出:

{"holder":{"entities":[{"name":"Administração","dateReg":"Dec 29, 2016 2:03:17 PM"}],"sm":{}},"message":{"text":""},"status":-1}

我不知道还能尝试解决这个问题。 拜托,你们能帮助我吗?

提前致谢。

UPDATE

正如@Dekel所建议的,我还尝试使用外部文件作为data-bynary( test.txt的内容是name =Administração ):

 curl -i -X POST -H "Content-Type: text/plain; charset=UTF-8" --data-binary "@test.txt" http://localhost:8084/ws/departments 

我仍然得到这个不寻常的输出:

 **{"holder":{"entities":[{"name":"Administra��o","dateReg":"Dec 29, 2016 2:41:27 PM"}],"sm":{}},"message":{"text":""},"status":-1}** 

更新2

@Phylogenesis建议使用charset=ISO-8859-1 。 我注意到,即使返回Administraçà £o结果,在服务器端狭窄地检查,WS正在接收确切的字母,在这种情况下是ç

在与@Dekel讨论并提出来自@Phylogenesis的建议之后,我可以部分地解决问题,但是有效。 有两种方式:

  • charset=ISO-8859-1
  • 编码文件并作为二进制数据发送

服务器可以使用charset=ISO-8859-1接收正确的字母。 甚至来自服务器的响应数据显示不正确。

我使用: curl -i -X POST -H "Content-Type: text/plain; charset=ISO-8859-1" --data-ascii "name=Administração" http://localhost:8084/ws/departments

第二种方法是编码包含要POST的所有内容的文件。 我使用Notepad ++> Format> Convert to UTF-8(无BOM)

然后,提示: curl -i -X POST -H "Content-Type: text/plain; charset=UTF-8" --data-binary "@test.txt" http://localhost:8084/ws/departments