バイト型配列に代入されている文字列データをString型に変換(デコード)するには、Encoding.GetStringメソッドを使います。具体的には、バイト型配列のデータの文字コードに従ってEncodingオブジェクトを作成し、GetStringメソッドを呼び出します。Encodingオブジェクトを作成する方法については、「目的の文字コードに合ったEncodingオブジェクトを取得する」をご覧ください。
下の例ではバイト型配列"bytesData"にすでに文字列データが入っているものとし、これをString型に変換しています。
'バイト型配列"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)
//バイト型配列"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メソッドを使用します。
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)
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);
補足:バイト型配列のデータを間違った文字コードを指定して文字列に変換した時、その文字列をバイト型配列に変換しても、通常は元のデータには戻りません。
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。