it-swarm.com.de

So codieren Sie das Pluszeichen (+) in der URL

Der unten stehende URL-Link öffnet ein neues Google Mail-Fenster. Das Problem, das ich habe, ist, dass Google alle Pluszeichen (+) im E-Mail-Text durch Leerzeichen ersetzt. Es sieht so aus, als ob es nur mit dem + Zeichen passiert. Irgendwelche Vorschläge zur Behebung dieses Problems? (Ich arbeite auf der ASP.NET-Webseite)

https://mail.google.com/mail?view=cm&tf=0&[email protected]&su=some subject & body = Hallo + Hallo

(In der Body-E-Mail wird "Hi there + Hello there" als "Hi there Hello there" angezeigt.)

53
user523234

Das + Zeichen hat eine besondere Bedeutung in einer URL => bedeutet Leerzeichen. Wenn Sie das + Zeichen, das Sie zur URL-Codierung benötigen:

body=Hi+there%2bHello+there

Hier ist ein Beispiel, wie Sie URLs in .NET richtig generieren können:

var uriBuilder = new UriBuilder("https://mail.google.com/mail");

var values = HttpUtility.ParseQueryString(string.Empty);
values["view"] = "cm";
values["tf"] = "0";
values["to"] = "[email protected]";
values["su"] = "some subject";
values["body"] = "Hi there+Hello there";

uriBuilder.Query = values.ToString();

Console.WriteLine(uriBuilder.ToString());

Das Ergebnis

https://mail.google.com:443/mail?view=cm&tf=0&to=someemail%40somedomain.com&su=some+subject&body=Hi+there%2bHello+there

83
Darin Dimitrov

Möchten Sie ein Pluszeichen (+) im Textkörper, müssen Sie es als 2B kodieren.

Zum Beispiel: Versuchen Sie dies

16
Black Frog

Es ist sicherer, alle Zeichen mit Ausnahme der in RFC-3986 als "unreserviert" definierten Zeichen immer in Prozent zu codieren.

nicht reserviert = ALPHA/DIGIT/"-"/"."/"_"/"~"

Kodieren Sie also das Pluszeichen und andere Sonderzeichen in Prozent.

Das Problem, das Sie mit Pluspunkten haben, liegt darin, dass gemäß RFC-1866 (HTML 2.0-Spezifikation) Absatz 8.2.1. Unterabsatz 1., "Die Namen und Werte der Formularfelder werden maskiert: Leerzeichen werden durch" + "ersetzt und reservierte Zeichen werden maskiert"). Diese Art der Codierung von Formulardaten wird auch in späteren HTML-Spezifikationen angegeben. Suchen Sie nach relevanten Absätzen zu application/x-www-form-urlencoded.

2
Maxim Masiutin

verwenden Sie für Javascript die Funktion encodeURIComponent, um Sonderzeichen zu codieren

2
morteza khadem