2013-10-14 5 views
5

Sono leggere il file JSON codificato con UTF-8 charset
Io uso questa sintassi:

$http.get('resources/negozi.json', 
    {header : {'Content-Type' : 'application/json; charset=UTF-8'} 
}).success(function(data) { 
... code here 
}); 

Ma, l'intestazione di risposta è :

Content-Type: text/plain; charset = ISO-8859-1

Se provo a farlo con jQuery:

$.ajax({ 
type: "GET", 
url: "resources/negozi.json", 
contentType: "application/json; charset=utf-8", 
dataType: "json", 

La richiesta di intestazione è corretta. Ma la risposta è la stessa.

Content-Type: text/plain; charset = ISO-8859-1

+0

qual è il server che stai utilizzando? – nubbel

+1

Come ha detto @nubbel, la risposta del server è quella che determina ciò che viene restituito: controlla il codice lato server. –

+0

Il codice lato server sono io. Scrivo un io codificato utf-8 da solo per il test. Sfortunatamente non posso cambiare nulla sul server – Banasci

risposta

6

Sembra che potrebbe essere necessario impostare un'intestazione Accept. L'intestazione contentType si applica alle cose che stai inviando;

Accept: application/json;charset=UTF-8 
Accept-Charset: UTF-8 

così;

$.ajax({ 
    type:"GET", 
    url:"resources/negozi.json", 
    headers: { 
     "Accept": "application/json;charset=utf-8", 
     "Accept-Charset":"charset=utf-8" 
    }, 
    dataType:"json" 
});  
0

Se si utilizza PHP come linguaggio di programmazione lato server si può provare a impostare la codifica interna a UTF-8 con mb_internal_encoding("utf-8").