ネットワーク

[C#] URI文字列をエスケープする

2022年4月12日

URI文字列をエスケープするには、
Uri.EscapeUriString() または Uri.EscapeDataString() を使用します。

違いは以下の通りです。
Uri.EscapeUriString():URIの予約文字(:/&? 等)以外のみエスケープする
Uri.EscapeDataString():指定したすべての文字をエスケープする

サンプル

例1)URI文字列の必要な箇所のみエスケープする


//URI文字列をエスケープする
string eStr = Uri.EscapeUriString("http://hoge.hoge?aa=あいう");

Console.WriteLine(eStr);

結果

http://hoge.hoge?aa=%E3%81%82%E3%81%84%E3%81%86

「:」や「/」などの文字はエスケープされません。

例2)文字列の全てをエスケープする


//URI文字列をエスケープする
string eStr = Uri.EscapeDataString("http://hoge.hoge?aa=あいう");

Console.WriteLine(eStr);

結果

http%3A%2F%2Fhoge.hoge%3Faa%3D%E3%81%82%E3%81%84%E3%81%86

「:」や「/」などの文字も全てエスケープされます。

備考

  • httpで始まるURIをエスケープする場合は、Uri.EscapeUriStringをご使用ください。
  • クエリ部分のみをエスケープする場合は、Uri.EscapeDataStringをご使用ください。

関連記事

-ネットワーク
-