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.
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 -.
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 @.
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 + "¶m2=99"
Cela donnera l'URL codée complète suivante :
http://example.net/?param1=http%3A%2F%2Fexample.org%2F%Ffa%3D12%26b%3D55¶m2=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!