「投稿」リクエストに入れるための文字列を用意したいと思います。残念ながら、URL をエンコードするために私が見つけたすべての方法は、ほんの一握りの文字にのみパーセント エンコードを適用しているようです。さまざまな方法。HttpUtility.UrlEncode
、() や § などの一部の文字はそのままにしておきます。
4746 次
2 に答える
5
これはあなたが探しているものですか?
string input = @"such as () and § untouched.";
//Console.WriteLine(input);
Console.WriteLine(HttpUtility.UrlEncodeUnicode(input));
Console.WriteLine(HttpUtility.UrlEncode(input));
string everything = string.Join("", input.ToCharArray().Select(c => "%" + ((int)c).ToString("x2")).ToArray());
Console.WriteLine(everything);
Console.WriteLine(HttpUtility.UrlDecode(everything));
//This is my understanding of what you're asking for:
string everythingU = string.Join("", input.ToCharArray().Select(c => "%u" + ((int)c).ToString("x4")).ToArray());
Console.WriteLine(everythingU);
Console.WriteLine(HttpUtility.UrlDecode(everythingU));
出力:
such+as+()+and+%u00a7+untouched.
such+as+()+and+%c2%a7+untouched.
%73%75%63%68%20%61%73%20%28%29%20%61%6e%64%20%a7%20%75%6e%74%6f%75%63%68%65%64%2e
such as () and � untouched.
%u0073%u0075%u0063%u0068%u0020%u0061%u0073%u0020%u0028%u0029%u0020%u0061%u006e%u0064%u0020%u00a7%u0020%u0075%u006e%u0074%u006f%u0075%u0063%u0068%u0065%u0064%u002e
such as () and § untouched.
于 2011-11-14T21:51:40.397 に答える
0
残念ながら、ほとんどの既存のコンバーターは、互換性のない URL 文字しか見ていません。主に(あなたが言及したように)URLエンコーディング、またはクロスサイトスクリプティングの防止のため。
一から作ろうとすると、調べるのに時間がかかりますが、面白そうです。既存のエンコーダーをオーバーライドして、関連する文字を追加したり、すべての文字と数字を変更したりすることもできます。
これは UTF/ASCII の適切なリンクです --> HTML エンコード (%)
于 2011-11-14T19:39:17.833 に答える