次の方法で共有


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

更新 : 2007 年 11 月

文字は、多数の異なる文字スキームまたはコード ページを使用して表現できる抽象エンティティです。たとえば、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

その他の技術情報

基本型の操作