Zwei häufig verwendete Methoden zum Lösen verstümmelter chinesischer AJAX-Zeichen
1. EncodeURI auf der Clientseite (utf-8 kann auch weggelassen werden, die Standardeinstellung) und die ISO-8859-1-Kodierung in die utf-8-Kodierung auf der Serverseite konvertieren
2. EncodeURI wird auf der Clientseite zweimal ausgeführt und auf der Serverseite einmal konvertiert.
Der Grund, warum die zweite Methode das Problem lösen kann:
Führen Sie nach zwei Konvertierungen die erste Dekodierung in der ersten getparameter-Methode durch. Da die Lösung auf Englisch vorliegt (das Ergebnis nach der ersten Kodierung), tritt beim zweiten Mal kein Problem auf. Verwenden Sie also die Dekodierungsmethode von URLDecoder normal gelöst werden. Es ist zu beachten, dass das Dekodierungsformat in der Dekodierungsmethode als „utf-8“ angegeben werden muss. Viele chinesische Plattformen verwenden UTF-8 nicht (ich vermute, es ist GB2312), daher ist die Standardkonvertierung der Dekodierung nicht unbedingt UTF-8.
Der Grund, warum der Client auf dem Server zweimal kodiert und nur einmal dekodiert wird, liegt an Tomcat. Um die Programmierung für Programmierer bequemer zu gestalten (Get und Post verwenden denselben Code), dekodiert Tomcat automatisch die Kodierung des Posts, sodass auf der Serverseite eine handschriftliche Dekodierungsanweisung weniger vorhanden ist. Der Grund, warum wir die Kodierung und Dekodierung erneut durchführen müssen, liegt darin, dass der automatische Dekodierungsvorgang von Tomcat nicht unbedingt entsprechend der von uns gewünschten Kodierung dekodiert wird, die für Englisch und andere Zeichen dekodierten Codes jedoch unabhängig von der Plattform gleich sind. Daher kann Tomcat das Ergebnis der ersten Codierung automatisch interpretieren und dann den EncodeURI-Code einmal manuell interpretieren, um das benötigte Format zu erhalten.
Ergänzung: Jetzt habe ich das Verhalten des Browsers erneut beobachtet und denke, dass es nicht an Tomcat liegt, da der Browser Chinesisch anstelle des codierten Inhalts anzeigt. Ich hoffe, das zu wissen. Freunde mit Kenntnissen in diesem Bereich können mir gerne Ratschläge geben!
Lösen Sie das IE-Cache-Problem
Fügen Sie einen Zeitstempel hinzu und möchten Sie dies überprüfen?
Lösung von Agenturproblemen
Willst du? In $ umrechnen
Beispielcode:
Kopieren Sie den Codecode wie folgt:
Funktion überprüfen() {
//Methode 1 zur Lösung des Problems verstümmelter chinesischer Zeichen. Die von der Seite gesendeten Daten werden als EncodeURI codiert und das Serversegment verwendet new String(old.getBytes("iso8859-1"),"UTF-8" );
// Methode 2 zur Lösung des chinesischen verstümmelten Problems: Die von der Seite gesendeten Daten werden zweimal codiert und das Serversegment verwendet URLDecoder.decode (alt, „UTF-8“)
var url = "AJAXServer?name=" + encodeURI(encodeURI($("#userName").val()));
url = konvertierenURL(url);
$.get(url,null,function(data){
$("#result").html(data);
});
}
//Fügen Sie der URL-Adresse einen Zeitstempel hinzu, um den Browser zu täuschen und den Cache nicht zu lesen
Funktion konvertierenURL(URL) {
//Zeitstempel abrufen
var timstamp = (new Date()).valueOf();
//Fügen Sie die Zeitstempelinformationen in die URL ein
//url = "AJAXServer"
if (url.indexOf("?") >= 0) {
url = url + "&t=" + timstamp;
} anders {
url = url + "?t=" + timstamp;
}
Rückgabe-URL;
}