DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

バイト型配列のデータを文字コードを指定して文字列に変換する
文字列を文字コードを指定してバイト型配列のデータに変換する

バイト型配列を文字列に変換する

バイト型配列に代入されている文字列データをString型に変換(デコード)するには、Encoding.GetStringメソッドを使います。具体的には、バイト型配列のデータの文字コードに従ってEncodingオブジェクトを作成し、GetStringメソッドを呼び出します。Encodingオブジェクトを作成する方法については、「目的の文字コードに合ったEncodingオブジェクトを取得する」をご覧ください。

下の例ではバイト型配列"bytesData"にすでに文字列データが入っているものとし、これをString型に変換しています。

VB.NET
コードを隠すコードを選択
'バイト型配列"bytesData"に文字列データが入っているものとする

Dim str As String

'Shift JISとして文字列に変換
str = System.Text.Encoding.GetEncoding(932).GetString(bytesData)

'JISとして変換
str = System.Text.Encoding.GetEncoding(50220).GetString(bytesData)

'EUCとして変換
str = System.Text.Encoding.GetEncoding(51932).GetString(bytesData)

'UTF-8として変換
str = System.Text.Encoding.UTF8.GetString(bytesData)

'結果を表示
Console.WriteLine(str)
C#
コードを隠すコードを選択
//バイト型配列"bytesData"に文字列データが入っているものとする

string str;

//Shift JISとして文字列に変換
str = System.Text.Encoding.GetEncoding(932).GetString(bytesData);

//JISとして変換
str = System.Text.Encoding.GetEncoding(50220).GetString(bytesData);

//EUCとして変換
str = System.Text.Encoding.GetEncoding(51932).GetString(bytesData);

//UTF-8として変換
str = System.Text.Encoding.UTF8.GetString(bytesData);

//結果を表示
Console.WriteLine(str);

文字列をバイト型配列に変換する

今度は逆に文字列をバイト型配列に変換(エンコード)する例を示します。文字列をバイト型配列に変換するには、Encoding.GetBytesメソッドを使用します。

VB.NET
コードを隠すコードを選択
Dim str As String = "テストです。"

Dim bytesData As Byte()

'Shift JISとして文字列に変換
bytesData = System.Text.Encoding.GetEncoding(932).GetBytes(str)

'JISとして変換
bytesData = System.Text.Encoding.GetEncoding(50220).GetBytes(str)

'EUCとして変換
bytesData = System.Text.Encoding.GetEncoding(51932).GetBytes(str)

'UTF-8として変換
bytesData = System.Text.Encoding.UTF8.GetBytes(str)
C#
コードを隠すコードを選択
string str = "テストです。";

byte [] bytesData;

//Shift JISとして文字列に変換
bytesData = System.Text.Encoding.GetEncoding(932).GetBytes(str);

//JISとして変換
bytesData = System.Text.Encoding.GetEncoding(50220).GetBytes(str);

//EUCとして変換
bytesData = System.Text.Encoding.GetEncoding(51932).GetBytes(str);

//UTF-8として変換
bytesData = System.Text.Encoding.UTF8.GetBytes(str);
補足:バイト型配列のデータを間違った文字コードを指定して文字列に変換した時、その文字列をバイト型配列に変換しても、通常は元のデータには戻りません。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。