Maison >interface Web >js tutoriel >encodeURI() vs encodeURIComponent() : quand utiliser lequel pour l'encodage d'URL ?

encodeURI() vs encodeURIComponent() : quand utiliser lequel pour l'encodage d'URL ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-16 20:51:18470parcourir

encodeURI() vs. encodeURIComponent(): When to Use Which for URL Encoding?

Escape vs. encodeURI / encodeURIComponent : considérations d'utilisation

Lors de l'encodage d'une chaîne de requête à envoyer à un serveur Web, le choix entre utiliser escape() et encodeURI() / encodeURIComponent() dépendent des besoins spécifiques du application.

escape()

escape() est une fonction héritée dont l'utilisation n'est plus recommandée. Il a été déprécié au profit de encodeURI() et encodeURIComponent() en raison de ses caractéristiques indésirables. Plus précisément, escape() encode les caractères spéciaux à l'exception de @*_ -./, et utilise une séquence d'échappement hexadécimale à deux chiffres pour les caractères avec une valeur d'unité de code égale ou inférieure à 0xFF. Ce format n'est pas autorisé dans une chaîne de requête, tel que défini dans la RFC3986.

encodeURI()

encodeURI() doit être utilisé lorsqu'une URL fonctionnelle est souhaitée. Il code les caractères qui ne font pas partie de la spécification URI, tels que les espaces et les caractères non alphanumériques. Cependant, encodeURI() n'encode pas le caractère '.

encodeURIComponent()

encodeURIComponent() doit être utilisé lors de l'encodage de la valeur d'un paramètre d'URL. Il code les caractères qui ne sont pas valides dans un composant URI, tels que les espaces et les caractères non alphanumériques. De plus, encodeURIComponent() n'encode pas le caractère '.

Consignes d'utilisation

  • Utilisez encodeURI() pour créer une URL valide.
  • Utilisez encodeURIComponent() pour encoder la valeur d'un paramètre d'URL.
  • Évitez d'utiliser escape() en raison de son statut obsolète et de problèmes potentiels d'encodage.
  • N'oubliez pas que ni encodeURI() ni encodeURIComponent() n'encodent le caractère '.

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