名前にキリル文字や中国語などの非ラテン文字を含めることができるファイルをユーザーがアップロードできるアプリケーションがあります。例えば:
http://localhost/привет мир.html
次に、スペースなどの不正な文字や特殊文字のファイル名を URL エンコードできるようにする必要があります。次のように URI を URL エンコードすると:
string uri = "http://localhost/привет мир.html";
string encoded = HttpUtility.UrlPathEncode(uri);
Console.WriteLine(encoded);
次の結果が得られます。
http://localhost/%d0%bf%d1%80%d0%b8%d0%b2%d0%b5%d1%82%20%d0%bc%d0%b8%d1%80.html
私が本当に欲しいのはこれです:
http://localhost/привет%20мир.html
ほとんどのブラウザーはこの形式をサポートしており、私のユーザー (この場合はロシア人) は、より表示しやすい URL を自分の言語と文字セットで表示できる必要があります。
URI を URL エンコードし、特定の文字セットをエンコードしない方法はありますか?