2012-09-19 28 views
14

Me gustaría POST (enviar) algunos datos del formulario a un servidor web usando cURL en un terminal-prompt.¿Cómo PUESTO datos de formulario con codificación UTF-8 usando curl?

Esto es lo que tengo hasta ahora:

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

El problema es que el Umlaute ("AOU") se sustituyen por "?" cuando recibo la solicitud posterior en el servidor.

Creo que necesito usar una codificación UTF-8 para la solicitud POST.

¿Alguien sabe cómo puedo lograr esto?

+0

DUP Posible de: http://stackoverflow.com/questions/10172327/linux-curl-save-as-utf-8 – alfasin

+0

I don' creo que sí Su comentario es sobre solicitudes GET y decodificación UTF-8. Mi pregunta es acerca de las solicitudes POST y la codificación UTF-8. – ashiaka

+0

Muéstranos el valor 'bin2hex ($ content)' de lo que estás recibiendo en el servidor. – deceze

Respuesta

21

PUEDE usar UTF-8 en la solicitud POST, todo lo que necesita es especificar el juego de caracteres en su solicitud.

así que supongo que debe utilizar esta solicitud:

curl -X POST -H "Content-Type: text/html; charset=UTF-8" --data-ascii "content=derinhält&date=asdf" http://myserverurl.com/api/v1/somemethod 
+5

El tipo de contenido que figura en la respuesta anterior es simplemente incorrecto. El correcto es '-H" Content-Type: application/x-www-form-urlencoded; charset = utf-8 "'. –

+0

@KonradWindszus gracias por la *** respuesta correcta ***! – candlejack

+0

¡Totalmente me salvó! – Dmitri

Cuestiones relacionadas