Es gibt drei Funktionen in JavaScript, die Zeichenfolgen kodieren können, nämlich: Escape, EncodeURI, EncodeURIComponent und die entsprechenden drei Dekodierungsfunktionen:
unescape,decodeURI,decodeURIComponent.
Im Folgenden finden Sie eine kurze Einführung in ihre Unterschiede
1 Escape()-Funktion
Definition und Verwendung
Die Funktionescape() kodiert einen String, sodass dieser auf allen Computern gelesen werden kann.
Grammatik
escape(string)
Parameterbeschreibung
Zeichenfolge erforderlich. Die Zeichenfolge, die maskiert oder codiert werden soll.
Rückgabewert
Eine Kopie der codierten Zeichenfolge. Einige dieser Zeichen werden durch hexadezimale Escape-Sequenzen ersetzt.
Beschreibung
Diese Methode kodiert weder ASCII-Buchstaben und -Zahlen noch die folgenden ASCII-Satzzeichen: -_ *
Alle anderen Zeichen werden durch Escape-Sequenzen ersetzt.
2 encodeURI()-Funktion
Definition und Verwendung
Die Funktion encodeURI() kodiert einen String als URI.
Grammatik
encodeURI(URIstring)
Parameterbeschreibung
URIstring erforderlich. Eine Zeichenfolge, die den URI oder anderen zu kodierenden Text enthält.
Rückgabewert
Eine Kopie des URIstrings, wobei einige Zeichen durch hexadezimale Escape-Sequenzen ersetzt wurden.
Beschreibung
Diese Methode kodiert weder ASCII-Buchstaben und -Zahlen noch diese ASCII-Satzzeichen: - _ ~ * ' ( ) .
Der Zweck dieser Methode besteht darin, den URI vollständig zu kodieren, sodass die Funktion encodeURI() die folgenden ASCII-Satzzeichen, die im URI eine besondere Bedeutung haben, nicht maskiert: ;/?:@&=+$ ,#
3 encodeURIComponent()-Funktion
Definition und Verwendung
Die Funktion encodeURIComponent() kodiert einen String als URI-Komponente.
Grammatik
encodeURIComponent(URIstring)
Parameterbeschreibung
URIstring erforderlich. Eine Zeichenfolge, die URI-Komponenten oder anderen zu codierenden Text enthält.
Rückgabewert
Eine Kopie des URIstrings, wobei einige Zeichen durch hexadezimale Escape-Sequenzen ersetzt wurden.
Beschreibung
Diese Methode kodiert weder ASCII-Buchstaben und -Zahlen noch diese ASCII-Satzzeichen: - _ ~ * ' ( ) .
Andere Zeichen (z. B. :;/?:@&=+$,# die Satzzeichen, die zum Trennen von URI-Komponenten verwendet werden) werden durch eine oder mehrere hexadezimale Escape-Sequenzen ersetzt.
Tipps und Hinweise
Tipp: Bitte beachten Sie, dass sich die Funktion encodeURIComponent() von der Funktion encodeURI() dadurch unterscheidet, dass erstere davon ausgeht, dass ihre Argumente Teil eines URI sind (z. B. ein Protokoll, ein Hostname, ein Pfad oder eine Abfragezeichenfolge). Die Funktion encodeURIComponent() maskiert daher die Satzzeichen, die Teile des URI trennen.
4 Zusammenfassung:
Durch die Analyse der drei Funktionen können wir Folgendes wissen: escape() maskiert zusätzlich zu ASCII-Buchstaben, Zahlen und bestimmten Symbolen alle übergebenen Zeichenfolgen. Wenn Sie also die URL codieren möchten, ist dies der Fall Am besten verwenden Sie diese Methode nicht. Und encodeURI() wird zum Codieren des gesamten URI verwendet, da die zulässigen Zeichen im URI nicht codiert und konvertiert werden. Die encodeURIComponent-Methode sollte am häufigsten zum Codieren einer einzelnen URIComponent verwendet werden (bezogen auf Anforderungsparameter). Sie kann chinesische Zeichen und Sonderzeichen in den Parametern maskieren, ohne die gesamte URL zu beeinträchtigen.
5 Beispiel:
1 Escape()
<script type="text/javascript"> document.write(escape("http://www.w3school.com.cn/") + "<br />") document.write(escape("?!=()#%&")) </script>输出: http%3A//www.w3school.com.cn %3F%21%3D%28%29%23%25%26
2 encodeURI()
<script type="text/javascript"> document.write(encodeURI("http://www.w3school.com.cn/")+ "<br />") document.write(encodeURI("http://www.w3school.com.cn/My first/")) document.write(encodeURI(",/?:@&=+$#")) </script>输出: http://www.w3school.com.cn/ http://www.w3school.com.cn/My%20first/ ,/?:@&=+$#
Kodiert die gesamte URL, während URL-spezifische Kennungen nicht transkodiert werden.
3 encodeURIComponent()
Beispiel 1:
<script type="text/javascript"> document.write(encodeURIComponent("http://www.w3school.com.cn/")) document.write("<br />") document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/")) document.write("<br />") document.write(encodeURIComponent(",/?:@&=+$#")) </script输出: http%3A%2F%2Fwww.w3school.com.cn http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F %2C%2F%3F%3A%40%26%3D%2B%24%23
Beispiel 2:
<script language="javascript">document.write(' <a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</script>
Kodieren Sie die Parameter in der URL, da die Parameter auch eine URL sind. Wenn sie nicht kodiert sind, wirkt sich dies auf den Sprung der gesamten URL aus.