2012-09-19 17 views
14

Vorrei inviare POST (invia) alcuni dati di modulo a un server web utilizzando cURL su un terminale-prompt.Come si POST i dati dei moduli con la codifica UTF-8 usando curl?

Questo è quello che ho ottenuto finora:

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

Il problema è che l'umlaute ("äöü") sono sostituite dalle "?" quando ricevo la richiesta di posta sul server.

Penso di aver bisogno di utilizzare una codifica UTF-8 per la richiesta POST.

Qualcuno sa come posso ottenere questo?

+0

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

+0

I don' Penso di sì. Il tuo commento riguarda le richieste GET e la decodifica UTF-8. La mia domanda riguarda le richieste POST e la codifica UTF-8. – ashiaka

+0

Mostraci il valore 'bin2hex ($ content)' di ciò che stai ricevendo sul server. – deceze

risposta

21

È possibile utilizzare UTF-8 nella richiesta POST, tutto ciò che serve è specificare il set di caratteri nella richiesta.

quindi suppongo si dovrebbe usare questa richiesta:

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

Il tipo di contenuto indicato nella risposta sopra è semplicemente sbagliato Quello corretto è '-H" Content-Type: application/x-www-form-urlencoded; charset = utf-8 "'. –

+0

@KonradWindszus grazie per la *** risposta giusta ***! – candlejack

+0

Mi ha completamente salvato! – Dmitri

Problemi correlati