3

名前にキリル文字や中国語などの非ラテン文字を含めることができるファイルをユーザーがアップロードできるアプリケーションがあります。例えば:

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 エンコードし、特定の文字セットをエンコードしない方法はありますか?

4

1 に答える 1

3

独自の を作成する必要がありますHttpEncoder

HttpEncoder クラス-備考セクションHttpEncoderではHttpUtility、 、HttpServerUtility、およびHttpResponseHeader.

于 2012-12-27T17:32:53.123 に答える