Pourquoi la virgule URL encodé?

Lors du débogage dans ASP.NET MVC, je ne vois pas la différence entre:

http://mysite.com?q=hi,bye

et

http://mysite.com?q=hi%2Cbye

La chaîne de requête de paramètre "q" a toujours une valeur de "bonjour,au revoir".

Alors, pourquoi est la virgule codé?

Je veux faire quelque chose comme ceci https://stackoverflow.com/a/752109/173957.

J'ai cette forme:

<form method="GET" action="/Search">
     <input type="hidden" name="q" value="hi,bye"/>
     <input type="submit" value="ok"/>
</form>

Comment puis-je éviter cette valeur d'être codé?

  • Pourquoi voulez-vous empêcher d'être codé? ASP.NET automatiquement le décoder pour vous, quel est donc le problème?
  • J'imagine ?q=salut,bye est un peu plus lisible que ?q=bonjour%2Cbye. Aussi, je suis surtout curieux.
  • Il y a des années, j'ai utilisé explicitement une virgule dans ma requête chaîne de valeur, pour la raison qu'il n'a pas été codé, et donc facilement lisible dans la barre d'adresse. Dommage que certaines bibliothèques/navigateurs maintenant encoder.
  • Double Possible de stackoverflow.com/questions/2366260/...
  • Double Possible de Ce qui est valable et ce n'est pas une URI de la requête?
InformationsquelleAutor Scott Coates | 2012-01-12