Was Ihnen dieser Artikel bringt, ist, wie JavaScript die URL-Transkodierung und -Dekodierung implementiert. Er hat einen gewissen Referenzwert. Ich hoffe, er wird für Sie hilfreich sein.
1. Escape und Unescape
escape() kann nicht direkt für die URL-Codierung verwendet werden. Seine eigentliche Funktion besteht darin, den Unicode-codierten Wert eines Zeichens zurückzugeben.
Verwendung des Unicode-Zeichensatzes zum Codieren der angegebenen Zeichenfolge außer 0-255. Alle Leerzeichen, Satzzeichen, Sonderzeichen und weitere verwandte Nicht-ASCII-Zeichen werden in die Zeichenkodierung im %xx-Format konvertiert (xx entspricht der Hexadezimalzahl der Zeichenkodierung in der Zeichensatztabelle). Die dem Leerzeichen entsprechende Kodierung ist beispielsweise %20.
Escape kodiert nicht 69 Zeichen: *, +, -, ., /, @, _, 0-9, a-z, A-Z.
Die Funktion escape() wird zum Codieren von Zeichenfolgen in js verwendet und wird nicht häufig verwendet.
Kodierung:
escape('http://www.baidu.com?name=zhang@xiao@jie&order=1')
Ergebnis: „http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1“
escape(' Zhang')
Ergebnis: „%u5F20“
Dekodierung:
unescape("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")
Ergebnis: „http://www.baidu.com?name=zhang@xiao@jie&order =1"
unescape("%u5F20")
Ergebnis: "张"
2. encodeURI und decodeURI
verwenden UTF für die URI-Zeichenfolge Das Kodierungsformat -8 wird in verschiedene Escape-Zeichenfolgen konvertiert.
encodeURI kodiert keine 82 Zeichen: !, #, $, &, ', (,), *, +,,, -,., /, :,;, =,?, @,_,~ , 0-9, a-z, A-Z
encodeURI() wird verwendet, um die gesamte URL zu kodieren
Kodierung:
encodeURI('http://www.baidu.com?name=zhang@xiao@jie&order=1')
Ergebnis: „http://www.baidu.com ? name=zhang@xiao@jie&order=1"
Dekodierung:
decodeURI("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")
Ergebnis:"http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order% 3D1 "
3. encodeURIComponent und decodeURIComponent
Der Unterschied zu encodeURI() besteht darin, dass es zum Kodieren einzelner Komponenten der URL verwendet wird, anstatt die gesamte URL zu kodieren.
Deshalb „; / ? : @ & = + $ , #“, diese Symbole, die nicht in encodeURI() codiert sind, werden alle in encodeURIComponent() codiert. Was die spezifische Codierungsmethode betrifft, sind beide gleich. Konvertieren Sie die URI-Zeichenfolge mithilfe des UTF-8-Codierungsformats String in das Escape-Format.
encodeURIComponent() wird zur Übergabe von Parametern verwendet, die Sonderzeichen enthalten .com%3Fname%3Dzhang%40xiao%40jie%26order%3D1"
Dekodierung:encodeURIComponent('http://www.baidu.com?name=zhang@xiao@jie&order=1')
Zusammenfassung:
escape() kann nicht direkt für die URL-Codierung verwendet werden. Seine eigentliche Funktion besteht darin, den Unicode-Codierungswert eines Zeichens zurückzugeben. Zum Beispiel" Die Rückkehr Das Ergebnis von „Frühlingsfest“ ist %u6625%u8282, und escape() kodiert nicht „+“. Die Funktion, die tatsächlich zum Kodieren der URL
verwendet wird, kodiert die gesamte URL-Adresse, aber nicht die Symbole mit besonderer Bedeutung "; / ? : @ & = + $ , #". Die entsprechende Dekodierungsfunktion ist: decodeURI(. )>encodeURIComponent()kann "; / ? : @ & = + $ , #" Die entsprechende Dekodierungsfunktion ist meiner Meinung nach
. Um die URL mit einem kaufmännischen Und zu übergeben, verwenden Sie encodeURIComponent()
Das obige ist der detaillierte Inhalt vonWie implementiert Javascript die URL-Transkodierung und -Dekodierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!