in utf-8-Datei zu lesen (JavaScript XMLHttpRequest) gibt schlechte europäische Zeichen
-
06-07-2019 - |
Frage
kann jemand helfen? Ich habe kleine Prozedur in einer UTF-8-Datei mit Javascript lesen XMLHttpRequest mit .. Diese Datei europäischen Zeichen wie miércoles sábado etc hat .. Beachten Sie die Akzente ..
Aber wenn in .. die Zeichen gelesen werden alle verkorkste sind .. Ich habe die Datei überprüft und es ist perfekt .. es muss das Verfahren sein, zum Lesen in ..
her ein Beispiel i-Datei, die enthält, die Datei ist perfekt, es Javascript passiert sein, aber es spielt keine Rolle, .. jede UTF-8-Codierung Datei mit Sonderzeichen gibt mir das gleiche Problem
this.weekDays = new Array ( "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");
aber wenn sie zurückgebracht und durch das Verfahren lesen Sie unten es so ist (man beachte die lustigen Charaktere in sabado und miercoles)
this.weekDays = new Array ( "Lunes", "Martes", "mia © rcoles", "Jueves", "Viernes", "Sábado", "Domingo");
Hier ist mein Verfahren - es sehr klein ist ...
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;
Lösung
Ich denke, Sie eine andere Art und Weise zu verwenden, haben die Zeichen zu drucken, siehe zum Beispiel den Code am Ende der diese Diskussion :
<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>
Andere Tipps
Wahrscheinlich ist Ihre Datei nicht in UTF-8 dann versuchen, diese von javascript:
var request = new XMLHttpRequest();
request.open("GET", path, false);
request.overrideMimeType('text/xml; charset=iso-8859-1');
Ich habe das gleiche Problem, und ich auf diese Weise festgelegt.
Wenn Sie dienen dazu, die js Datei, die die spanischen Tage als UTF-8 enthalten, und die, wenn NICHT gespeichert als UTF-8 es wird nicht funktionieren.
Speichern Sie die Datei in Ihrem IDE als UTF-8 (dh. Standard für js Dateien Eclipse wird cp1252) und dient auch als UTF-8-Zeichen-Codierung.
Wenn Ihre App Java, sind ein Filter mit diesem Code:
response.setCharacterEncoding("UTF-8");
ein gutes haben
Ich habe auch das gleiche Problem konfrontiert, ich habe auf diese Weise gelöst,
Während Auf Wunsch holen wir das Senden von Daten durch url So dekodiert ich die URL und erhalten Parameter durch String-Operationen angefordert
Überlegen Sie, ob Sie URL wie diese senden, var UR1 = "getSubjectList.jsp"; "? Subjectlist =" UR1 + = + str + "& examId =" + examId;
xmlHttp.open ( "GET", UR1, true); xmlHttp.send (null);
In getSubjectList.jsp, Verwenden this-- String decodedParams = URLDecoder.decode (request.getQueryString () "UTF-8");
String params [] = decodedParams.split ( "&");
String subjectlist[]=params[0].split("=");
String examId[] = params[1].split("=");
String center = subjectlist[1];
String exam = examId[1];
Auf diese Weise können Sie die gewünschten Werte erhalten