Bezüglich der chinesischen verstümmelten Zeichen bei der Übertragung eines href-Parameters

Bezüglich der chinesischen verstümmelten Zeichen bei der Übertragung eines href-Parameters

Wenn href zum Übergeben von Parametern benötigt wird und die Parameter auf Chinesisch sind, werden verstümmelte Zeichen angezeigt. Die einfachste Methode ist:

Der übergebene Wert wird zunächst mit escape() verschlüsselt und dann auf der Wertzugriffsseite mit unescape() entschlüsselt. Dies wurde getestet und ist wirksam.

Ich habe online nachgeschaut und herausgefunden, dass man „urlencode“ zum Verschlüsseln und „urldecode“ zum Entschlüsseln verwenden kann.

Ähm... was ist der Unterschied zwischen den beiden? Ich habe es gerade überprüft und geklärt, Quelle (http://www.cnblogs.com/glory-jzx/archive/2013/06/14/3135580.html):

js umfasst 3 Funktionen zum Kodieren von Text : escape, encodeURI, encodeURIComponent und 3 entsprechende Dekodierungsfunktionen: unescape, decodeURI, decodeURIComponent

1. Beim Übergeben von Parametern müssen Sie encodeURIComponent verwenden, damit die kombinierte URL nicht durch Sonderzeichen wie # abgeschnitten wird.
Beispiel: <script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u= +encodeURIComponent("http://cang.baidu.com/bruce42")+">Quit< /a>');</script>

>2. Bei der Umleitung von URLs können Sie encodeURI als Ganzes verwenden
Beispiel: Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

3. Escape kann verwendet werden, wenn js Daten verwendet
Beispiel: Verlaufsdatensätze in der Sammlung.

4. Wenn Escape andere Unicode-Werte als 0-255 codiert, erfolgt die Ausgabe im Format %u****. In anderen Fällen sind die Codierungsergebnisse von Escape, encodeURI und encodeURIComponent identisch.

5. Am häufigsten sollte encodeURIComponent verwendet werden , das Sonderzeichen wie Chinesisch und Koreanisch in die URL-Kodierung UTF-8 konvertiert. Wenn Sie also encodeURIComponent verwenden müssen, um Parameter an den Hintergrund zu übergeben, muss die Hintergrunddekodierung UTF-8 unterstützen (die Kodierungsmethode im Formular ist dieselbe wie die Kodierungsmethode der aktuellen Seite).

6. Keine Verschlüsselung:

Es gibt 69 Escape-Zeichen: *, +, -, ., /, @, _, 0-9, az, AZ

Es gibt 82 Zeichen, die nicht in encodeURI codiert sind: !, #, $, &, ', (,), *, +, ,, -, ., /, :, ;, =, ?, @, _, ~, 0-9, az, AZ

encodeURIComponent kodiert 71 Zeichen nicht: !, ', (,), *, -, ., _, ~, 0-9, az, AZ

Was ist der Unterschied zwischen escape() und encodeURI()?

escape()-Methode:
Alle Leerzeichen, Satzzeichen, Akzentzeichen und alle anderen Nicht-ASCII-Zeichen werden als „%XX“ codiert, wobei xx eine Hexadezimalzahl ist.
Die Kodierungs- und Dekodierungsfunktionen escape und unescape, escape gibt eine hexadezimale Kodierung eines ISO-Lateinzeichensatzes zurück. Die unescape-Funktion konvertiert eine hexadezimale Kodierung mit speziellen Werten in eine ASCII-Zeichenfolge
Beispiel:
entkommen('!@#$%^&*(){}[]=:/;?+\'"'):
Ergebnis:%21@%23%24%25%5E%26*%28%29%7B%7D%5B%5D%3D%3A/%3B%3F+%27%22

encodeURI()-Methode
Die Methode Encodeuri gibt eine codierte URI zurück. Wenn Sie daher die Methode Decodeuri auf das Ergebnis anwenden, wird die ursprüngliche Zeichenfolge zurückgegeben. Die Methode Encodeuri codiert die folgenden Zeichen nicht: ", "/", ";", "?". Sie können diese Zeichen jedoch mit der Methode EncodeuriComponent codieren.
kodiert, ersetzt ein Uniform Resource Identifier (URI) (URI) bestimmte Zeichen nacheinander und beschreibt so die Eigenschaften der UTF-8-Kodierung.
Zum Beispiel:
encodeURI('!@#$%^&*(){}[]=:/;?+\'"'):
Ergebnis:!@#$%25%5E&*()%7B%7D%5B%5D=:/;?+'%22

Methode encodeURIComponent():
Die Methode encodeuricomponent gibt eine codierte URI zurück. Wenn Sie also decodeuricomponent aufrufen, wird die ursprüngliche Zeichenfolge zurückgegeben. Da der gesamte Text von der Methode encodeuricomponent codiert wird, seien Sie vorsichtig, wenn die Zeichenfolge Pfade wie „/FOLDER1/FOLDER2/DEFAULT.HTML“ enthält. Die Codierung funktioniert nicht und schlägt fehl, wenn sie als Anforderung an einen Webserver verwendet wird. Verwenden Sie die Methode Encodeuri, wenn die Zeichenfolge aus mehr als einer URI besteht.
Beispiel: Am einfachsten ist es, sich den Code anzusehen, der nach der Verschlüsselung dieser Zeichen generiert wird.
encodeURIComponent('!@#$%^&*(){}[]=:/;?+\'"'):
Ergebnisse!%40%23%24%25%5E%26*()%7B%7D%5B%5D%3D%3A%2F%3B%3F%2B'%22

[Wann ist welche Methode sinnvoll?]

Die Methode escape() verschlüsselt nicht + sie wird serverseitig und in Formularfeldern als Leerzeichen interpretiert. Aufgrund dieser Verkürzung sollten Sie diese Methode möglichst vermeiden. Wenn Sie zwischen beiden wählen müssen, verwenden Sie am besten immer encodeURIComponent().

escape() verschlüsselt nicht: @*/+

encodeURI() ist etwas spezialisierter als escape() und wird zum Kodieren von URIs verwendet. URIs sind das Gegenteil einer Abfragezeichenfolge, die Teil einer URL ist. Verwenden Sie diese Methode, wenn Sie eine Zeichenfolge in einen URI-Ressourcenbezeichner konvertieren müssen und bestimmte Zeichen unkodiert bleiben müssen. Denken Sie daran, dass das Zeichen ' nicht kodiert wird, da es in der URI enthalten ist.

encodeURI() wird nicht verschlüsselt: !@#$&*()=:/;?+'

Schließlich wird die Methode encodeURIComponent() in den meisten Fällen verwendet, wenn Sie eine einzelne URI-Komponente kodieren müssen. Diese Methode kann bestimmte Zeichen kodieren, die für URIs spezifisch sind, sodass die meisten Komponenten eingeschlossen werden können. Denken Sie daran, dass das Zeichen ' selbst in URIs enthalten ist, sodass diese Methode es nicht kodiert.

encodeURIComponent() verschlüsselt nicht: !*()'
http://shijian0306.javaeye.com/blog/241264

Ich habe nur Escape verwendet, dies dient also nur als Referenz.

Der obige Artikel über das Problem des verstümmelten chinesischen Codes bei der Übergabe eines href-Parameters ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Original-URL: http://www.cnblogs.com/zhangym118/archive/2016/07/05/5644915.html

<<:  Das Balkendiagramm von Vue + Echart realisiert Statistiken zu Epidemiedaten

>>:  HTML imitiert die Dropdown-Menüfunktion der Baidu-Enzyklopädienavigation

Artikel empfehlen

VMWare15 installiert Mac OS-System (grafisches Tutorial)

Installationsumgebung Windows 10 VMware Workstati...

Detaillierte Erläuterung der sieben Wertübertragungsmethoden von Vue

1. Vom Vater zum Sohn Definieren Sie das props Fe...

Analyse des Prozesses der einfachen Bereitstellung von Nginx im Docker-Container

1. Stellen Sie den Nginx-Dienst im Container bere...

Zusammenfassung der drei Regeln für die React-Statusverwaltung

Inhaltsverzeichnis Vorwort Nr.1 Ein Fokus Nr. 2 E...

Führen Sie die Schritte zur Installation von MySQL 8.0.x unter Linux aus.

MySQL Einführung in MySQL MySQL war ursprünglich ...

Sieben Prinzipien eines guten Designers (2): Farbgebrauch

<br />Vorheriger Artikel: Sieben Prinzipien ...

Analyse verschiedener Fehler bei Sortierregeln für MySQL-Tabellen

Der folgende Fehler wird gemeldet, wenn MySQL meh...

VMware virtuelle Maschine installieren CentOS 8 (1905) System-Tutorial-Diagramm

Die weltberühmte virtuelle Maschinensoftware VMwa...