567 votes

Quand au codage d’espace et plus (+) ou % 20 ?

Parfois les espaces obtenir URL codée pour le signer, quelques autres fois à . Quelle est la différence et pourquoi dans ce cas ?

539voto

bobince Points 270740

+ , c'est un espace seulement en application/x-www-form-urlencoded de contenu, comme la partie requête de l'URL:

http://www.example.com/path/foo+bar/path?query+name=query+value

Dans cette URL, le nom du paramètre est query name avec un espace et de la valeur est query value avec un espace, mais le nom du dossier dans le chemin d'accès est littéralement foo+bar, pas foo bar.

%20 est un moyen valable de coder un espace dans l'une de ces contextes. Donc, si vous avez besoin d'encoder une chaîne de caractères pour l'inclusion dans le cadre d'une URL, il est toujours préférable de remplacer les espaces par %20 et plus avec %2B. C'est ce que par exemple. encodeURIComponent() en JavaScript. Malheureusement, ce n'est pas ce qu' urlencode n'en PHP (rawurlencode est plus sûr).

Voir Aussi La Spécification HTML 4.01 application/x-www-form-urlencoded

58voto

cerberos Points 2000

``

La partie avant le point d’interrogation doit utiliser % encodage (donc pour l’espace), après le point d’interrogation, vous pouvez utiliser soit ou pour un espace. Si vous avez besoin d’une réelle après le point d’interrogation, utilisez `` .

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