Es gibt mehrere Methoden zum Codieren von URL-Strings in JavaScript: escape(), encodeURI() und encodeURIComponent(). Diese Kodierungen spielen unterschiedliche Rollen.
escape()-Methode:
Verwenden Sie den lateinischen ISO-Zeichensatz, um die angegebene Zeichenfolge zu kodieren. Alle Leerzeichen, Satzzeichen, Sonderzeichen und andere 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 lautet beispielsweise .
Zeichen, die mit dieser Methode nicht kodiert werden: @ * /
encodeURI()-Methode:
Konvertieren Sie die URI-Zeichenfolge mithilfe des UTF-8-Codierungsformats in eine Escape-Formatzeichenfolge.
Zeichen, die mit dieser Methode nicht codiert werden: ! @ # $& * ( ) = : / ;
encodeURIComponent()-Methode:
Konvertieren Sie die URI-Zeichenfolge mithilfe des UTF-8-Codierungsformats in eine Escape-Formatzeichenfolge. Im Vergleich zu encodeURI () codiert diese Methode mehr Zeichen, z. B. / und andere Zeichen. Wenn die Zeichenfolge also mehrere Teile des URI enthält, können Sie diese Methode nicht zum Codieren verwenden, da die URL sonst nach der Codierung des /-Zeichens einen Fehler anzeigt.Zeichen, die mit dieser Methode nicht codiert werden: ! * ( ) '
Daher müssen Sie für chinesische Zeichenfolgen nur verwenden, wenn Sie das Zeichenfolgencodierungsformat nicht in das UTF-8-Format konvertieren möchten (z. B. wenn der Zeichensatz der Originalseite und der Zielseite identisch sind). Flucht. Wenn Ihre Seite GB2312 oder eine andere Codierung aufweist und die Seite, die Parameter akzeptiert, UTF-8-codiert ist, müssen Sie encodeURI oder encodeURIComponent verwenden.
Darüber hinaus wurde encodeURI/encodeURIComponent nach Javascript1.5 eingeführt und Escape war in Javascript1.0 verfügbar.