57 votes

Point d'interrogation au milieu d'une variable URL

Si j'ai une variable à faire passer par une URL et qu'elle contient un point d'interrogation, dois-je simplement échapper le point d'interrogation ?

Si non, comment puis-je m'assurer qu'il passe comme il se doit ?

0 votes

@StefanH Ok. Mon url sera quelque chose comme site.com?var1=apples&var2=newsite.com?w.newsite.com&var3=stu‌​ff Je ne savais pas si ça allait rendre les choses bizarres.

0 votes

Je suis désolé - J'ai mal lu la question - Ma réponse était fausse. Vous voudriez certainement coder cela :)

65voto

David Schwartz Points 70129

Un URL avec point d'interrogation est codé comme suit %3F . Mais vous devriez utiliser un encodeur approprié pour l'ensemble de l'opération plutôt que d'encoder manuellement un caractère.

12voto

ElectroByt Points 1

D'après l'expérience que j'ai acquise en essayant de créer un moteur de recherche JavaScript qui se lie à Google, il suffit de remplacer les points d'interrogation par %3F .

Une URL lit les deux premiers caractères à droite d'une adresse de type % au format hexadécimal.

8voto

DorkRawk Points 282

Voici un liste complète de caractères d'encodage d'URL. Si vous utilisez PHP comme langage côté serveur, vous pouvez utiliser quelque chose comme...

$nice_url = urlencode("http://your.old.url");

D'autres langues intègrent des fonctions similaires (ou vous pouvez en trouver une en ligne). Cela vous permettra de résoudre le problème du point d'interrogation (et d'autres problèmes d'URL).

5 votes

Vous devez encoder les segments de chemin individuellement, plutôt que d'encoder l'URL entière. Sinon, vous encoderez également les deux points après le schéma, les points dans le FQDN et les barres obliques qui séparent les segments de chemin. Jetez un coup d'œil à outils.ietf.org/html/rfc3986

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X