Das Beispiel in diesem Artikel beschreibt, wie die Escape-Funktion das Problem verstümmelter chinesischer Zeichen bei der Ajax-Übertragung in js löst. Es wird als Referenz für alle freigegeben. Die spezifische Methode ist wie folgt:
1. Problembeschreibung:
Ursprünglich codierte Escape () in den Spezialeffekten der Webseite Chinesisch gemäß dem Zeichensatz ISO-8859-1, sodass die Anforderungsparameter direkt über request.getparameter () abgerufen werden können. Später wird Javascript jedoch Escape ( ) ) wurde durch Unicode-Zeichensatzkodierung ersetzt. Daher können die Anforderungsparameter nicht direkt im JSP-Tutorial und im Servlet abgerufen werden.
2. Lösung:
1. Zuerst kodiert escape() die chinesischen Zeichen zweimal. Wenn Sie den Parameternamen übergeben möchten und der Wert „Hallo“ ist, lautet das Format der URL....name=escape(escape(„Hallo ") ), auf diese Weise können die codierten Parameter in request.getparameter() abgerufen werden.
2. Da die erhaltenen Parameter das Format %u4f60%u597d haben, können sie nicht mit dem regulären urldecoder.decode() dekodiert werden. Glücklicherweise gibt es auf der Welt genügend talentierte Leute, um eine Werkzeugklasse direkt im Internet zu finden ., kann die Kodierung und Dekodierung im Escape()- und unescape()-Stil in Javascript realisieren
Definition und Verwendung:
Die Funktion escape() kodiert einen String so, dass er auf allen Computern gelesen werden kann.
Syntax:
Zeichenfolge erforderlich. Die Zeichenfolge, die maskiert oder codiert werden soll.
Eine Kopie der codierten Zeichenfolge. Einige dieser Zeichen werden durch hexadezimale Escape-Sequenzen ersetzt.
Diese Methode kodiert weder ASCII-Buchstaben und -Zahlen noch die folgenden ASCII-Satzzeichen: - _ ~ * ' ( ) . Alle anderen Zeichen werden durch Escape-Sequenzen ersetzt.
Tipp: Sie können unescape() verwenden, um mit Escape() codierte Zeichenfolgen zu dekodieren.
Hinweis: Ecmascript v3 veraltet diese Methode, Anwendungen sollten stattdessen decodeuri() und decodeuricomponent() verwenden