Search code examples
httppostcurlencodingwebserver

How do I POST form data with UTF-8 encoding by using curl?


I would like to POST (send) some form data to a webserver using cURL on a terminal-prompt.

This is what I got so far:

curl --data-ascii "content=derinhält&date=asdf" http://myserverurl.com/api/v1/somemethod

The problem is that the umlaute ("äöü") are replaced by "?" when I receive the post request on the server.

I think I need to use an UTF-8 encoding for the POST request.

Does anybody know how I can achieve this?


Solution

  • You CAN use UTF-8 in the POST request, all you need is to specify the charset in your request.

    You should use this request:

    curl -X POST -H "Content-Type: application/x-www-form-urlencoded; charset=utf-8" --data-ascii "content=derinhält&date=asdf" http://myserverurl.com/api/v1/somemethod