URL 内のプラス記号 (+) をエンコードする方法 質問する

URL 内のプラス記号 (+) をエンコードする方法 質問する

以下の URL リンクをクリックすると、新しい Google メール ウィンドウが開きます。問題は、Google がメール本文のプラス (+) 記号をすべて空白に置き換えてしまうことです。この問題は記号にのみ発生するようです+。どうすればこれを解決できますか? (ASP.NET Web ページで作業しています。)

https://mail.google.com/mail?view=cm&tf=0&[メールアドレス]&su=いくつか件名&本文=こんにちは+こんにちは

(メール本文では、「Hi there+Hello there」は「Hi there Hello there」と表示されます)

ベストアンサー1

文字+は URL [のクエリ セグメント] 内で特別な意味を持ちます => 空白文字を意味します: 。ここでリテラル+記号を使用する場合は、次のように URL エンコードする必要があります%2b:

body=Hi+there%2bHello+there

.NET で URL を適切に生成する方法の例を次に示します。

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());

結果:

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

おすすめ記事