更新 - 8 月 31 日
string test = "ö";
string unicode1 = HttpUtility.UrlEncode(test, Encoding.Unicode);
string unicode2 = HttpUtility.UrlEncodeUnicode(test);
Console.WriteLine("Result of unicode1: " + unicode1);
Console.WriteLine("Result of unicode2: " + unicode2);
さまざまな結果を見ることができます。現在、データを投稿するために URL のパラメーターに UrlEncode を使用していた場合、ブラウザーがリソースを取得しているときに返されるのは unicode2 になります。
更新 - 8 月 30 日 リンクをクリックしてトレース httprequest を確認してください QueryString のパラメーター「nm」の値が変わったのは奇妙でした。元の文字列は「ööö」だったので、UTF でエンコードした後、Url で確認できます。 -8、RawUrl で「%c3%b6%c3%b6%c3%b6%」になりましたが、通常は RawUrl と QueryString の間で同じエンコード結果を保持するはずです。誰も理由を知っていますか?
ボタンをクリックすると、URL リファラーが null になるという問題が発生しました。"ööööööööö" というテキストを入力しました。C# と IE の間でエンコーディングが異なることがわかります。
C# によってエンコードされた URL。Fiddler によってキャプチャされました
IEでエンコードされたURL、IEのステータスバーに表示されていた
UTF8でエンコードした結果:「%c3%b6%c3%b6%c3%b6%c3%b6%c3%b6%c3%b6%c3%b6%c3%b6」
IE によるエンコードの結果: 「%u00f6%u00f6%u00f6%u00f6%u00f6%u00f6%u00f6%u00f6」</p>
誰かがそれがどのように起こるかを知っていて、手を差し伸べますか?