échapper à caractère spécial dans une url
Je suis en utilisant une url pour ouvrir une page html, et je suis d'envoyer des données dans une chaîne de requête avec l'url de la page.
Par exemple: abc.html?firstParameter=firstvalue&seconedParameter=seconedvalue
Problème est que si firstvalue
ou secondvalue
en paramètre contient
caractère spécial comme #,(,),%,{
, puis mon url n'est pas la construction. Dans ce cas, l'url n'est pas valide.
Je suis en train de faire tout cela dans javascript
.
Tout organisme peut s'il vous plaît aidez-moi à sortir de ce.
OriginalL'auteur ARV | 2012-05-27
Vous devez vous connecter pour publier un commentaire.
Vous avez 3 options:
Mais dans votre cas, si vous souhaitez passer une url en paramètre GET de la page, vous devez utiliser échapper ou encodeURIComponent, mais pas encodeURI.
merci yogesh , il a travaillé.
escape
est obsolète. Ne l'utilisez pas.trait de soulignement n'est pas de travail
OriginalL'auteur Yogesh Prajapati
Pour être en sécurité et de s'assurer que vous avez échappé à tous les caractères réservés spécifié dans les deux RFC 1738 et RFC 3986 vous devez utiliser une combinaison de encodeURIComponent, évasion et un pour remplacer l'astérisque('*') comme ceci:
[Explication]
Bien que la RFC 1738: Uniform Resource Locators (URL) spécifie que l' *, !, ', les caractères ( et ) peut être laissé en clair dans l'URL,
RFC 3986, pages 12 et 13, les états que ces caractères spéciaux sont réservés à des sous-délimiteurs.
La fonction escape() a été déprécié, mais peut être utilisé pour encoder le point d'exclamation, l'apostrophe, la parenthèse gauche et à droite de la parenthèse. Et puisqu'il y a une certaine ambiguïté sur l'existence d'un astérisque doivent être encodés dans une URL, et il ne fait pas de mal à coder, vous pouvez explicitement l'encodage est d'utiliser quelque chose comme la replace() de l'appel de fonction. [Notez que la fonction escape() est passé comme deuxième paramètre de la première replace() de l'appel de fonction. Tel qu'utilisé ici, remplacer les appels à la fonction escape() une fois pour chaque appariés caractère spécial de !, ', ( ou ), et d'échapper à la contente de de la "séquence d'échappement" pour que le caractère de retour à remplacer, qui rassemble tous les caractères échappés avec les autres fragments.]
Voir aussi 'https://stackoverflow.com/questions/6533561/urlencode-the-asterisk-star-character'
Aussi bien que certains sites ont même identifié le asterkisk(*) comme étant d'un caractère réservé, en vertu de RFC3986, ils n'ont pas l'inclure dans leur composant de l'URL de l'encodage de l'outil.
Non encodée URL parms:
URL encodée parms:
OriginalL'auteur ziggy