Warum URL-Kodierung?
Was sollten Sie tun, wenn %2F in Ihrer URL erscheint? Wie übergibt JS Parameter oder spezielle Symbole in der URL? Wie lässt sich das Problem lösen, dass wir in URL-Links häufig auf spezielle Symbole wie %2F und %2B stoßen? Lass uns einen Blick darauf werfen:
- Gemäß RFC-Standard können einige Symbole nicht direkt im URI übergeben werden und müssen gemäß dem vorgeschriebenen Format codiert werden.
- Kodierungsformat: % plus der ASCII-Code des Zeichens, also ein Prozentzeichen %, gefolgt vom ASCII-Codewert (hexadezimal) des entsprechenden Zeichens. Beispiel: Der Codierungswert eines Leerzeichens ist „%20“.
URL-Sondersymbole und -Codierung.
+ URL 中+号表示空格 %2B
空格 URL中的空格可以用+号或者编码 %20
/ 分隔目录和子目录 %2F
? 分隔实际的 URL 和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL 中指定的参数间的分隔符 %26
= URL 中指定参数的值 %3D
Wie kodiere und dekodiere ich eine URL?
1. escape und unescape (seltener verwendet)
Vorsichtsmaßnahmen
Besonderer Hinweis: Es gibt 69 Zeichen, die Escape nicht kodiert: *, +, -, ., /, @, _, 0-9, a-z, A-Z.
Einführung in die Nutzung
- escape() kann nicht direkt für die URL-Codierung verwendet werden. Seine eigentliche Funktion besteht darin, den Unicode-Codierungswert eines Zeichens zurückzugeben.
- Die Funktion escape() wird von js zum Codieren von Zeichenfolgen verwendet
- Verwenden Sie den Unicode-Zeichensatz, um die angegebene Zeichenfolge mit Ausnahme von 0-255 zu codieren.
- 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.
Anwendungsfälle
var url = "http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心";
escape(url)
'http%3A//localhost%3A8080/xiaojin%3Fstate%3D11%26name%3Dxiaojin%26other%3D%u5F00%u5FC3'
2. encodeURI und decodeURI (seltener verwendet)
Vorsichtsmaßnahmen
==Besondere Hinweise: Es gibt 82 Zeichen, die encodeURI nicht kodiert:!, #, $, &, ', (,), *, +,,,-,.,/,:,;,= , ?, @, _, ~, 0-9, a-z, A-Z ==
Einführung in die Nutzung
Konvertieren Sie URI-Strings mithilfe des UTF-8-Codierungsformats in verschiedene Escape-Strings.
encodeURI() wird im Allgemeinen zum Codieren der gesamten URL verwendet
Anwendungsfälle
var url = "http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心";
encodeURI(url)
'http://localhost:8080/xiaojin?state=11&name=xiaojin&other=%E5%BC%80%E5%BF%83'
3. encodeURIComponent und decodeURIComponent (häufig verwendet)
Vorsichtsmaßnahmen
==Besondere Hinweise: Dies ist einfacher zu verwenden, da „; / ? : @ & = + $ , #“ alle codiert werden. ==
Einführung in die Nutzung
- Normalerweise verwende ich dies zur Parameterübergabe
- Es wird verwendet, um Komponenten einer URL einzeln zu kodieren, anstatt die gesamte URL zu kodieren.
- Verwenden Sie das UTF-8-Kodierungsformat, um eine Zeichenfolge im Escape-Format zu konvertieren.
- Parameter, die Sonderzeichen enthalten, können zu Unterbrechungen führen.
Anwendungsfälle
var url = "http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心";
encodeURIComponent(url)
'http%3A%2F%2Flocalhost%3A8080%2Fxiaojin%3Fstate%3D11%26name%3Dxiaojin%26other%3D%E5%BC%80%E5%BF%83'
Das ist alles für heute~
- Freunde, ( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝBis morgen~~
- Bitte seid alle jeden Tag glücklich
Jeder ist herzlich eingeladen, im Artikel auf Bereiche hinzuweisen, die einer Korrektur bedürfen~
Das Lernen und die Win-Win-Zusammenarbeit nehmen kein Ende