Heim  >  Artikel  >  Web-Frontend  >  Wie implementiert Javascript die URL-Transkodierung und -Dekodierung?

Wie implementiert Javascript die URL-Transkodierung und -Dekodierung?

不言
不言Original
2018-09-14 17:48:046199Durchsuche

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')

Ergebnis: "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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn