Maison  >  Article  >  interface Web  >  Explication détaillée des différences entre les fonctions d'encodage de chaîne escape(), encodeURI() et encodeURIComponent() dans les compétences js_javascript

Explication détaillée des différences entre les fonctions d'encodage de chaîne escape(), encodeURI() et encodeURIComponent() dans les compétences js_javascript

WBOY
WBOYoriginal
2016-05-16 15:07:101461parcourir

Il existe trois fonctions en JavaScript qui peuvent encoder des chaînes, à savoir : escape, encodeURI, encodeURIComponent et les trois fonctions de décodage correspondantes :

unescape,decodeURI,decodeURIComponent.

Ce qui suit est une brève introduction à leurs différences

1 fonction escape()

Définition et usage

La fonction

escape() encode une chaîne afin qu'elle puisse être lue sur tous les ordinateurs.

Grammaire

évasion(chaîne)

Description du paramètre

chaîne requise. La chaîne à échapper ou à encoder.

Valeur de retour

Une copie de la chaîne encodée. Certains de ces caractères sont remplacés par des séquences d'échappement hexadécimales.

Description

Cette méthode n'encode pas les lettres et les chiffres ASCII, ni les caractères de ponctuation ASCII suivants : -_ *
.

Tous les autres caractères seront remplacés par des séquences d'échappement.

2 fonctions encodeURI()

Définition et usage

La fonction encodeURI() encode une chaîne sous forme d'URI.

Grammaire

encodeURI(URIstring)

Description du paramètre

URIstring requis. Une chaîne contenant l'URI ou un autre texte à encoder.

Valeur de retour

Une copie de l'URIstring, avec certains caractères remplacés par des séquences d'échappement hexadécimales.

Description

Cette méthode n'encode pas les lettres et les chiffres ASCII, ni ces caractères de ponctuation ASCII : - _ .

Le but de cette méthode est d'encoder complètement l'URI, de sorte que la fonction encodeURI() n'échappera pas aux caractères de ponctuation ASCII suivants qui ont des significations particulières dans l'URI : ;/?:@&=+$ ,#

3 fonctions encodeURIComponent()

Définition et usage

La fonction encodeURIComponent() encode une chaîne en tant que composant URI.

Grammaire

encodeURIComponent(URIstring)

Description du paramètre

URIstring requis. Une chaîne contenant des composants URI ou un autre texte à encoder.

Valeur de retour

Une copie de l'URIstring, avec certains caractères remplacés par des séquences d'échappement hexadécimales.

Description

Cette méthode n'encode pas les lettres et les chiffres ASCII, ni ces caractères de ponctuation ASCII : - _ .

Les autres caractères (tels que :;/?:@&=+$,# les signes de ponctuation utilisés pour séparer les composants URI) sont remplacés par une ou plusieurs séquences d'échappement hexadécimales.

Conseils et remarques

Astuce : Veuillez noter que la fonction encodeURIComponent() diffère de la fonction encodeURI() en ce sens que la première suppose que ses arguments font partie d'un URI (comme un protocole, un nom d'hôte, un chemin ou une chaîne de requête). La fonction encodeURIComponent() échappe donc aux caractères de ponctuation utilisés pour séparer les parties de l'URI.

4 Récapitulatif :

Grâce à l'analyse des trois fonctions, nous pouvons savoir que : escape(), en plus des lettres ASCII, des chiffres et des symboles spécifiques, échappe toutes les chaînes transmises. Par conséquent, si vous souhaitez encoder l'URL, il est mieux vaut ne pas utiliser cette méthode. Et encodeURI() est utilisé pour coder l'intégralité de l'URI, car les caractères légaux de l'URI ne seront pas codés ni convertis. La méthode encodeURIComponent doit être la plus couramment utilisée lors de l'encodage d'un seul URIComponent (en référence aux paramètres de requête). Elle peut échapper aux caractères chinois et spéciaux dans les paramètres sans affecter l'intégralité de l'URL.

5 Exemple :

1 évasion()

<script type="text/javascript">
document.write(escape("http://www.w3school.com.cn/") + "<br />")
document.write(escape("&#63;!=()#%&"))
</script>输出:
http%3A//www.w3school.com.cn
%3F%21%3D%28%29%23%25%26

2 encodeURI()

<script type="text/javascript">
document.write(encodeURI("http://www.w3school.com.cn/")+ "<br />")
document.write(encodeURI("http://www.w3school.com.cn/My first/"))
document.write(encodeURI(",/&#63;:@&=+$#"))
</script>输出:
http://www.w3school.com.cn/
http://www.w3school.com.cn/My%20first/
,/&#63;:@&=+$#

Encode l'intégralité de l'URL, tandis que les identifiants spécifiques à l'URL ne sont pas transcodés.

3 encodeURIComponent()

Exemple 1 :

<script type="text/javascript">
document.write(encodeURIComponent("http://www.w3school.com.cn/"))
document.write("<br />")
document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/"))
document.write("<br />")
document.write(encodeURIComponent(",/&#63;:@&=+$#"))
</script输出:
http%3A%2F%2Fwww.w3school.com.cn
http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F
%2C%2F%3F%3A%40%26%3D%2B%24%23

Exemple 2 :

<script language="javascript">document.write('
<a href="http://passport.baidu.com/&#63;logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</script>

Encodez les paramètres dans l'URL, car les paramètres sont également une URL. S'ils ne sont pas codés, cela affectera le saut de l'URL entière.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn