158 votes

Comment encoder le symbole plus (+) dans une URL

Le lien URL ci-dessous ouvrira une nouvelle fenêtre de Google mail. Le problème que je rencontre est que Google remplace tous les signes plus (+) dans le corps de l'e-mail par des espaces vides. Il semble que cela ne se produise qu'avec les + signe. Comment puis-je y remédier ? (Je travaille sur une page web ASP.NET).

https://mail.google.com/mail?view=cm&tf=0&to=someemail@somedomain.com&su=some subject&body=Bonjour là+Bonjour là

(Dans le corps du message, "Bonjour+Bonjour" s'affichera sous la forme "BonjourBonjour").

2voto

TarmoPikaro Points 11

En général, si vous utilisez les API .NET - new Uri("someproto:with+plus").LocalPath o AbsolutePath conservera le caractère plus dans l'URL. (Idem "someproto:with+plus" chaîne de caractères)

mais Uri.EscapeDataString("with+plus") échappe le caractère plus et produit "with%2Bplus" .

Par souci de cohérence, je recommanderais de toujours échapper le caractère plus à "%2B" et l'utiliser partout - il n'est alors plus nécessaire de deviner qui pense et quoi à propos de votre personnage plus.

Je ne sais pas pourquoi, à partir d'un personnage échappé '+' le décodage produirait un caractère d'espace ' ' - mais apparemment c'est le problème de certains composants.

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