102 votes

Caractères autorisés dans le paramètre GET

Quels caractères sont autorisés dans les paramètres GET sans les encoder ou les échapper? Je veux dire quelque chose comme ceci:

http://www.example.org/page.php?name=XYZ

Que pouvez-vous mettre à la place de XYZ? Je pense seulement les caractères suivants:

  • a-z (A-Z)
  • 0-9
  • -
  • _

Est-ce la liste complète ou y a-t-il d'autres caractères autorisés?

3voto

womp Points 71924

Les caractères alphanumériques et tous les

~ - _ . ! * ' ( ) ,

sont valides dans une URL.

Tous les autres caractères doivent être encodés.

0voto

geowa4 Points 17712

"." | "!" | "~" | "*" | "'" | "(" | ")" sont également acceptables [RFC2396]. Vraiment, n'importe quoi peut être dans un paramètre GET s'il est correctement encodé.

0voto

Ayesha Aleem Points 1

Lors du passage de caractères spéciaux, une erreur d'impossibilité de décoder la valeur peut se produire. Vous pouvez donc utiliser encodeURIComponent. Par exemple, si j'ai résolu mon problème comme suit:

updateUrl = updateUrl.replace(
                "SEARCH_TEXT",
                encodeURIComponent(JSON.stringify(searchText))
              );

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