Heim  >  Artikel  >  Web-Frontend  >  Sprechen Sie über die Unterschiede und Anwendungen der Fähigkeiten encodeURI, encodeURIComponent und escape_javascript

Sprechen Sie über die Unterschiede und Anwendungen der Fähigkeiten encodeURI, encodeURIComponent und escape_javascript

WBOY
WBOYOriginal
2016-05-16 15:30:061535Durchsuche

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 Unterschied zwischen encodeURI() und encodeURIComponent() ist eigentlich nicht groß

Der Hauptunterschied ist:

encodeURI hat 82 nicht codierte Zeichen: !, #, $, &, ', (,), *, ,,, -,.,/,:,;,=,?,@,_,~, 0-9, a-z, A-Z

encodeURIComponent 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"); ​​

Und Flucht ist im Vergleich zu den beiden oben genannten anders

escape() ist die Kodierung, unescape() ist die Dekodierung;

Escape-Methode

String-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

ersetzt

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>
Zusammenfassung

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

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