2009-06-20 4 views
5

qualcuno può aiutare? Ho una piccola procedura per leggere in un file UTF-8 con javascript utilizzando XMLHttpRequest .. questo file ha caratteri europei come miércoles sábado ecc. Notare gli accenti ..lettura nel file utf-8 (javascript XMLHttpRequest) dà cattivi caratteri europei

Ma quando si legge in .. i personaggi sono tutti incasinati up .. Ho controllato il file ed è perfetto .. deve essere la procedura per leggere in ..

ecco un esempio che ho un file che contiene, il file è perfetto, capita di essere javascript ma non lo fa 'importa ... qualsiasi file di codifica UTF-8 con caratteri speciali mi dà lo stesso problema

this.weekDays = new Array ("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");

ma quando tornò e leggere dalla procedura di seguito è come questo (si noti personaggi divertenti in Sabado e miercoles)

this.weekDays = new Array ("Lunes", "Martes", "mia © rcoles "," Jueves "," Viernes "," Sábado "," Domingo ");

Ecco la mia procedura - è molto piccola ...

var contentType = "application/x-www-form-urlencoded; charset=utf-8"; 

var request = new XMLHttpRequest(); 
request.open("GET", path, false); 
request.setRequestHeader('Content-type', contentType) 

if (request.overrideMimeType) request.overrideMimeType(contentType); 

try { request.send(null); } 
catch (e) { return null; } 
if (request.status == 500 || request.status == 404 || request.status == 2 || (request.status == 0 && request.responseText == '')) return null; 

//PROBLEM HERE is with european charcters that are read in 

print(request.responseText); 


return request.responseText; 
+0

Sei sicuro che il file è in UTF-8? Hai impostato il tuo editor di testo per salvarlo esplicitamente con quella codifica? L'impostazione della richiesta su UTF-8 è irrelvant, la risposta è davvero in UTF-8 e l'intestazione corrispondente impostata nella risposta? – jitter

+0

thgis è vecchio, ma per chiunque inciampi, usa il metodo * .overrideMimeType ('text/plain; charset = utf8'); * metodo dell'oggetto xmlhttprequest da [MDN Using XMLHttpRequest] (https://developer.mozilla.org)/it-IT/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest) –

risposta

1

io penso che si debba usare un modo diverso per stampare i caratteri, per esempio, vedere il codice alla fine del this discussion:

<script> 
    function getUnicode(num) { 
    num = num.toString(16); 
    if (num.length < 3) { 
     for (var i = num.length; i < 4; i++) { 
     num = '0' + num; 
     } 
    } 
    return ("&#" + num + ";"); 
    } 

    for (var i = 0; i < 65355; i++) { 
    document.write(getUnicode(i)); 
    } 
</script> 
1

Ho lo stesso problema e ho risolto in questo modo.

Se si serve il file js contenente i giorni spagnoli come UTF-8 e il se NON è salvato come UTF-8, NON FUNZIONA.

Salva il file nel tuo IDE come UTF-8 (ad esempio, l'eclipse predefinito per i file js sarà cp1252) e lo servirà anche come codifica del codice UTF-8.

Se la vostra applicazione è Java, fare un filtro con questo codice:

response.setCharacterEncoding("UTF-8"); 

hanno una buona

15

Probabilmente il file non è in UTF-8, allora provate questo da javascript:

var request = new XMLHttpRequest(); 
request.open("GET", path, false); 
request.overrideMimeType('text/xml; charset=iso-8859-1'); 
0

ho anche affrontato lo stesso problema, ho risolto in questo modo,

Mentre in Get requ est, stiamo inviando i dati tramite url Così ho decodificato l'URL e vai chiesto parametro attraverso operazioni sulle stringhe

prendere in considerazione se si sta inviando URL come questo, var UR1 = "getSubjectList.jsp"; ur1 + = "? Subjectlist =" + str + "& examId =" + examId;

xmlHttp.open ("GET", ur1, true); xmlHttp.send (null);

In getSubjectList.jsp, Usa questo-- String decodedParams = URLDecoder.decode (request.getQueryString(), "utf-8");

Param di stringa [] = decodificatoParam.split ("&");

 String subjectlist[]=params[0].split("="); 
    String examId[] = params[1].split("="); 
    String center = subjectlist[1]; 
    String exam = examId[1]; 

In questo modo, è possibile ottenere i valori richiesti

Problemi correlati