Sto utilizzando HttpClient (versione 3.1) su diversi computer diversi (ma apparentemente identici) per leggere i dati JSON codificati in UTF-8 da un URL.HttpClient che ignora la codifica, su un singolo computer
Su tutte le macchine, tranne una, funziona correttamente. Ho alcune parole in lingua spagnola e vengono fornite con accenti e tilde intatti.
Un computer si rifiuta ostinatamente di collaborare. A quanto pare, i dati vengono trattati come ISO-8859-1, nonostante l'intestazione Content-Type: application/json;charset=utf-8
.
Se utilizzo curl
per accedere a quell'URL da quel computer, funziona correttamente. Su ogni altro computer, sia il ricciolo che il mio programma HttpClient funzionano correttamente.
Ho fatto un md5sum sul file common-httpclient.jar su ogni macchina: lo stesso.
C'è qualche impostazione, in profondità in Linux, che potrebbe essere diversa e fare casino con me? Altre teorie, o anche luoghi da guardare?
MODIFICA: alcune persone hanno chiesto ulteriori dettagli.
Originariamente avevo il problema nelle viscere di una complessa app Tomcat, ma ho adattato leggermente lo the sample per recuperare l'URL in questione e (fortunatamente) avevo lo stesso problema.
Queste sono macchine Linux 2.6 che eseguono jdk1.7.0_45.
Un comando env
produce un sacco di variabili. L'unico che appare da remoto è LANG=en_US.UTF-8
.
potresti spiegare un po 'di più sulla macchina su cui non funziona, è un linux? quale? – caramba
Puoi chiarire la configurazione? È un problema con il client della riga di comando che utilizza httpclient per accedere ad alcuni URL? Quali variabili ambientali del sistema locale sono impostate su questo computer? –
risposta @caramba in modifica. – Malvolio