基本型のエンコーディング

文字は、多数の異なる文字スキームまたはコード ページを使用して表現できる抽象エンティティです。 たとえば、Unicode UTF-16 エンコーディングでは文字が 16 ビット整数のシーケンスとして表されますが、Unicode UTF-8 では同じ文字が 8 ビット バイトのシーケンスとして表されます。 共通言語ランタイムは、Unicode UTF-16 (Unicode Transformation Format、16 ビット エンコーディング形式) を使用して文字を表します。

共通言語ランタイムをターゲットとするアプリケーションは、エンコーディングによって文字表現をネイティブの文字スキームから別のスキームに変換します。 これらのアプリケーションは、デコーディングによって非ネイティブ スキームの文字をネイティブ スキームに割り当てます。 文字をエンコードおよびデコードするために最も一般的に使用される System.Text 名前空間のクラスを次の表に示します。

文字スキーム

クラス

説明

ASCII エンコーディング

System.Text.ASCIIEncoding

ASCII 文字の変換を行います。

各種エンコーディング

System.Text.Encoding

Convert メソッドに指定されたさまざまなエンコーディングの文字変換を行います。

UTF-16 Unicode エンコーディング

System.Text.UnicodeEncoding

UTF-16 エンコーディングの変換を行います。 このスキームでは、文字が 16 ビット整数で表されます。

UTF-8 Unicode エンコーディング

System.Text.UTF8Encoding

UTF-8 エンコーディングの変換を行います。 この可変幅エンコーディング スキームでは、文字が 1 ~ 4 バイトで表されます。

ASCIIEncoding.GetBytes メソッドを使用して、Unicode 文字列をバイト配列に変換するコード例を次に示します。 配列内の各バイトは、文字列のその位置にある文字に対応する ASCII 値を表します。

Dim MyString As String = "Encoding String."
Dim AE As New ASCIIEncoding()
Dim ByteArray As Byte() = AE.GetBytes(MyString)
Dim x as Integer
For x = 0 To ByteArray.Length - 1
   Console.Write("{0} ", ByteArray(x))
Next
string MyString = "Encoding String.";
ASCIIEncoding AE = new ASCIIEncoding();
byte[] ByteArray = AE.GetBytes(MyString);
for(int x = 0;x <= ByteArray.Length - 1; x++)
{
   Console.Write("{0} ", ByteArray[x]);
}

この例では、次の値がコンソールに表示されます。 バイト 69 は文字 E の ASCII 値です。バイト 110 は文字 n の ASCII 値であり、以下同様に続いています。

69 110 99 111 100 105 110 103 32 83 116 114 105 110 103 46

ASCIIEncoding クラスを使用して、上のバイト配列を文字配列に変換するコード例を次に示します。 GetChars メソッドを使用して、バイト配列をデコードします。

Dim AE As New ASCIIEncoding()
Dim ByteArray As Byte() = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 }
Dim CharArray As Char() = AE.GetChars(ByteArray)
Dim x As Integer
For x = 0 To CharArray.Length - 1
   Console.Write(CharArray(x))
Next
ASCIIEncoding AE = new ASCIIEncoding();
byte[] ByteArray = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 };
char[] CharArray = AE.GetChars(ByteArray);
for(int x = 0;x <= CharArray.Length - 1; x++)
{
   Console.Write(CharArray[x]);
}

上のコードでは、コンソールに Encoding String. と表示されます。

参照

参照

System.Text

System.Text.ASCIIEncoding

System.Text.Encoding

System.Text.UnicodeEncoding

System.Text.UTF7Encoding

System.Text.UTF8Encoding

その他の技術情報

基本型の操作