C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のUri.EscapeDataString(String)メソッドの使い方を徹底解説

C#のUri.EscapeDataString()メソッドは、指定した文字列をURIで安全に扱える「エスケープされた表現」へと変換します。URLに含まれる特殊文字(:/など)をパーセントエンコーディング形式に置き換えることで、データを正しく送受信できるようにします。

構文

このメソッドの構文は以下の通りです。

public static string EscapeDataString (string str);

引数の str には、エスケープ処理を行いたい文字列を指定します。戻り値として、変換後のエスケープ済み文字列が返されます。

使用例

それでは、Uri.EscapeDataString()メソッドを使った具体的なサンプルコードを見てみましょう。

using System;
public class Demo {
   public static void Main(){
      string URI1 = "https://www.tutorialspoint.com/index.htm";
      Console.WriteLine("URI = "+URI1);
      string URI2 = "https://www.tutorialspoint.com/";
      Console.WriteLine("URI = "+URI2);
      Console.WriteLine("\nEscaped string (URI1) = "+Uri.EscapeDataString(URI1));
      Console.WriteLine("Escaped string (URI2) = "+Uri.EscapeDataString(URI2));
   }
}

実行結果

上記のコードを実行すると、以下のような出力が得られます。

URI = https://www.tutorialspoint.com/index.htm URI = https://www.tutorialspoint.com/
Escaped string (URI1) = https%3A%2F%2Fwww.tutorialspoint.com%2Findex.htm
Escaped string (URI2) = https%3A%2F%2Fwww.tutorialspoint.com%2F

解説

実行結果から分かるように、元のURIに含まれていたコロン(:)は %3A に、スラッシュ(/)は %2F にそれぞれ変換されています。

Uri.EscapeDataString()メソッドは、クエリパラメータとして文字列をURLに埋め込む際や、Web APIへのリクエストを組み立てる際に特に役立ちます。空白や記号を含む文字列をそのまま送信すると正しく解釈されない場合があるため、事前にこのメソッドでエスケープしておくことで、安全かつ確実なデータ通信が可能になります。

  1. C#のSingleOrDefault()メソッドの使い方をわかりやすく解説

    SingleOrDefault()メソッドとはC#のLINQに含まれるSingleOrDefault()メソッドは、シーケンスから単一の特定要素を返すメソッドです。大きな特徴は、要素がシーケンス内に存在しない場合でも例外をスローせず、その型のデフォルト値を返すという点にあります。たとえば参照型の場合は null、数値型の場合は 0 といったデフォルト値が返されるため、空のコレクションを安全に扱いたい場面で非常に便利です。Single()メソッドとの違い似た名前の Single() メソッドは、要素が存在しない場合や複数の要素が見つかった場合に例外(InvalidOperationExcepti

  2. 【C#】String.Join()メソッドで文字列配列を連結する方法

    String.Join()メソッドとはC#のString.Join()メソッドは、文字列配列のすべての要素を1つの文字列に連結するためのメソッドです。各要素の間には、引数で指定した区切り文字(セパレーター)が自動的に挿入されます。たとえば、区切り文字として改行コード「\n」を指定すれば、配列の各要素がそれぞれ別の行に配置された、複数行の文字列を簡単に作成できます。基本的な構文String.Join(\n, starray);第1引数: 要素間に挿入する区切り文字第2引数: 連結対象の文字列配列戻り値: 連結された1つの文字列サンプルコード以下は、5つの文字列要素を持つ配列を改行コードで連結し、