Puis-je utiliser « | » dans une URL?
-
27-10-2019 - |
Question
Je suis un peu confus par cela. Je remarque que certaines API Web utilisent le caractère |
(par exemple mediawiki api - voir " Action = OpenSearch », le paramètre "espace de noms" vous dit séparer les éléments avec |
).
Cependant, je vois aussi qu'il est strictement interdit selon le w3 URL spec et cette question SO .
Alors ai-je mal compris les exemples (tels que mediawiki) que je l'ai vu? Faites les navigateurs URL pour moi dans les coulisses codent? Est-ce que ce travail avec certains navigateurs Web et les serveurs, mais cassera dans d'autres?
Comme je crée un schéma API Web que le code accédera à ne pas passer par un navigateur, je voudrais bien comprendre cela. Il serait bien d'effacer utiliser |
pour certains termes, mais je vais utiliser l'astuce encode URL si elle semble trop douteux.
La solution
Non, le |
n'est pas un caractère valide dans URIs et doit être codé en utilisant le codant pour cent .
Mais en dehors de cela, les navigateurs peuvent afficher l'octet codé pour cent-%7C
comme |
comme codés en pourcentage des séquences d'octets UTF-8 sont affichés comme les personnages qu'ils représentent.