Heim >Web-Frontend >js-Tutorial >Sprechen Sie über die Unterschiede und Anwendungen der Fähigkeiten encodeURI, encodeURIComponent und escape_javascript
Zuallererst wissen wir alle, dass diese drei Dinge zum Kodieren verwendet werden. Lassen Sie uns über encodeURI() und encodeURIComponent() sprechen. Diese beiden werden zum Kodieren und Dekodieren bei der Konvertierung von URLs verwendet.
Wenn es eine Kodierung gibt, erfolgt eine Dekodierung durch decodeURI() und decodeURIComponent(). Ihre Verwendung ist sehr einfach. Bringen Sie den zu transkodierenden Text in die Parameter, um den Zweck zu erreichen
Zum Beispiel:encodeURI("Ich bin der zu kodierende Text")
decodeURI("Ich bin der zu dekodierende Text")
encodeURIComponent("Ich bin der zu kodierende Text")
decodeURIComponent("Ich bin der zu dekodierende Text")
Der Hauptunterschied ist:
encodeURI hat 82 nicht codierte Zeichen: !, #, $, &, ', (,), *, ,,, -,.,/,:,;,=,?,@,_,~, 0-9, a-z, A-ZencodeURIComponent hat 71 nicht codierte Zeichen: !, ', (,), *, -, ., _, ~, 0-9, a-z, A-Z
encodeURI wird hauptsächlich verwendet, wenn der Adressleiste ein Wert direkt zugewiesen wird:
location.href=encodeURI("
http://www.cnblogs.com/Tezml/");
Und encodeURIComponent wird hauptsächlich für Abfrageparameter von URL:verwendet
location.href="http://www.cnblogs.com/Tezml/test.php?a=" encodeURIComponent("Ich bin, wer ich bin");
escape() ist die Kodierung, unescape() ist die Dekodierung;
Escape-MethodeString-Objekte so kodieren, dass sie auf allen Computern lesbar sind,
escape(charString)
Der erforderliche Charstring-Parameter ist ein beliebiges String-Objekt oder Literal, das codiert werden soll.
Beschreibung
Die Escape-Methode gibt einen String-Wert (Unicode-Format) zurück, der den Inhalt von charstring enthält. Alle Leerzeichen, Satzzeichen, Akzente und andere Nicht-ASCII-Zeichen werden durch die %xx-Kodierung
Wobei xx gleich der Hexadezimalzahl ist, die das Zeichen darstellt. Leerzeichen werden beispielsweise als „ “ zurückgegeben.
Zeichenwerte größer als 255 werden im %uxxxx-Format gespeichert.
Es gibt 69 Zeichen, die nicht durch Escape codiert werden: *, ,-,.,/,@,_,0-9,a-z,A-Z
Beachten Sie, dass die Escape-Methode nicht zum Codieren von Uniform Resource Identifiers (URIs) verwendet werden kann. Es sollte mit den Methoden encodeURI und encodeURIComponent codiert werden.
Die letzte Demo zum Kodieren und Dekodieren
<!DOCTYPE html> <html> <head> <title>Tezml_编码解码测试</title> <meta charset="utf-8"> <meta name="author" content="Tezml" /> <meta name="copyright" content="Tezml" /> <meta name="description" content="Tezml" /> <script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script> </head> <body> <div id="wz1"></div> <div id="wz2"></div> <div id="wz3"></div> <div id="wz4"></div> <div id="wz5"></div> <div id="wz6"></div> <div id="wz7"></div> <div id="wz8"></div> <div id="wz9"></div> <div id="wz10"></div> <div id="wz11"></div> <div id="wz12"></div> </body> <script type="text/javascript"> var chinese="请叫我中文" var english="place tall me englash" var Monster=":#&$/@" $("#wz1").html(encodeURI(chinese))//编码 %E8%AF%B7%E5%8F%AB%E6%88%91%E4%B8%AD%E6%96%87 $("#wz2").html(decodeURI(chinese))//解码 请叫我中文 $("#wz3").html(encodeURI(english))//编码 place%20tall%20me%20englash $("#wz4").html(decodeURI(english))//解码 place tall me englash $("#wz5").html(encodeURIComponent(Monster))//编码 %3A%23%26%24%2F%40 $("#wz6").html(encodeURI(Monster))//编码 :#&$/@ $("#wz7").html(escape(chinese))//编码 %u8BF7%u53EB%u6211%u4E2D%u6587 $("#wz8").html(escape(english))//编码 place%20tall%20me%20englash $("#wz9").html(escape(Monster))//编码 %3A%23%26%24/@ $("#wz10").html(unescape(chinese))//编码 请叫我中文 $("#wz11").html(unescape(english))//编码 place tall me englash $("#wz12").html(unescape(Monster))//编码 :#&$/@ </script> </html>
escape() kann nicht direkt für die URL-Codierung verwendet werden. Seine eigentliche Funktion besteht darin, den Unicode-Codierungswert eines Zeichens zurückzugeben. Das Rückgabeergebnis von „Spring Festival“ ist beispielsweise %u6625%u8282, und die Escape()-Kodierung wird hauptsächlich für die Kodierung chinesischer Zeichen verwendet und wird nicht mehr empfohlen.
encodeURI() ist die Funktion in Javascript, die tatsächlich zum Codieren von URLs verwendet wird. Die gesamte URL-Adresse ist kodiert, aber die Symbole mit besonderer Bedeutung „; / ? : @ & = $ , #“ werden nicht kodiert. Die entsprechende Dekodierungsfunktion lautet: decodeURI().
encodeURIComponent() kann die Sonderzeichen „; / ? : @ & = $ , #“ kodieren. Die entsprechende Dekodierungsfunktion ist decodeURIComponent().
Wenn Sie die URL mit dem kaufmännischen Und übergeben möchten, verwenden Sie encodeURIComponent()