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
Libérer: 2024-12-11 02:12:09
original
192 Les gens l'ont consulté

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
Copier après la connexion

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

http://www.example.org/a%20file%20with%20spaces.html
Copier après la connexion

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")
Copier après la connexion

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"
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal