Maison >interface Web >js tutoriel >Escape, encodeURI ou encodeURIComponent : quand utiliser lequel pour le codage de chaîne de requête ?

Escape, encodeURI ou encodeURIComponent : quand utiliser lequel pour le codage de chaîne de requête ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-11 02:12:09252parcourir

Escape, encodeURI, or encodeURIComponent: When to Use Which for Query String Encoding?

Quand utiliser Escape, encodeURI ou encodeURIComponent pour le codage de chaîne de requête

Dans le contexte de l'envoi d'une chaîne de requête à un serveur Web, la méthode de codage appropriée dépend de les exigences de codage spécifiques.

escape()

La fonction escape() ne doit pas être utilisée, car il est obsolète dans la spécification ECMAScript. Il encode tous les caractères spéciaux sauf @, _, *, et -.

encodeURI()

Utilisez encodeURI() lorsque vous avez besoin d'une URL fonctionnelle. Il code tous les caractères sauf ceux spécifiquement réservés aux URL. Ces caractères réservés incluent /, &, ?, : et @.

encodeURIComponent()

Utilisez encodeURIComponent() lorsque vous souhaitez encoder la valeur d'un paramètre d'URL. Il code tous les caractères sauf ceux explicitement spécifiés comme non réservés. Ces caractères non réservés incluent /, ?, : et @.

Exemple :

Pour encoder la chaîne de requête suivante :

http://www.example.org/a file with spaces.html

Vous utiliserait encodeURI() pour obtenir l'URL codée suivante :

http://www.example.org/a%20file%20with%20spaces.html

Cependant, si vous souhaitez pour coder la valeur d'un paramètre dans la chaîne de requête, vous utiliserez encodeURIComponent() :

var p1 = encodeURIComponent("http://example.org/?a=12&b=55")

La valeur du paramètre codé résultant peut ensuite être ajoutée à l'URL de base pour former l'URL complète :

var url = "http://example.net/?param1=" + p1 + "&param2=99"

Cela donnera l'URL codée complète suivante :

http://example.net/?param1=http%3A%2F%2Fexample.org%2F%Ffa%3D12%26b%3D55&param2=99

Il est important de noter que encodeURIComponent() n'encode pas le caractère ', ce qui peut entraîner des failles de sécurité s'il n'est pas géré correctement lors de la construction des attributs HTML.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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