byte[] から string 型に変換する
(2016/12/02 21:35:26 created.)
byte[] から string 型に変換するには、System.Text.Encoding クラスの該当する文字コードで GetString() メソッドを使用します。当然ですが文字コードを間違えると文字化けてしまいます。
Program.cs
namespace Tips_Encoding
{
using System;
using System.Linq;
using System.Text;
class Program
{
static void Main(string[] args)
{
var str = "0123あいう";
byte[] bytes;
string str_ASCII;
string str_Unicode;
string str_UTF8;
Console.WriteLine("str = {0}", str);
Console.WriteLine("-- ASCII ----------------");
bytes = Encoding.ASCII.GetBytes(str);
PrintByteArray(bytes);
str_ASCII = Encoding.ASCII.GetString(bytes);
str_Unicode = Encoding.Unicode.GetString(bytes);
str_UTF8 = Encoding.UTF8.GetString(bytes);
Console.WriteLine("str_ASCII = " + str_ASCII);
Console.WriteLine("str_Unicode = " + str_Unicode);
Console.WriteLine("str_UTF8 = " + str_UTF8);
Console.WriteLine(Environment.NewLine + "-- Unicode --------------");
bytes = Encoding.Unicode.GetBytes(str);
PrintByteArray(bytes);
str_ASCII = Encoding.ASCII.GetString(bytes);
str_Unicode = Encoding.Unicode.GetString(bytes);
str_UTF8 = Encoding.UTF8.GetString(bytes);
Console.WriteLine("str_ASCII = " + str_ASCII);
Console.WriteLine("str_Unicode = " + str_Unicode);
Console.WriteLine("str_UTF8 = " + str_UTF8);
Console.WriteLine(Environment.NewLine + "-- UTF8 -----------------");
bytes = Encoding.UTF8.GetBytes(str);
PrintByteArray(bytes);
str_ASCII = Encoding.ASCII.GetString(bytes);
str_Unicode = Encoding.Unicode.GetString(bytes);
str_UTF8 = Encoding.UTF8.GetString(bytes);
Console.WriteLine("str_ASCII = " + str_ASCII);
Console.WriteLine("str_Unicode = " + str_Unicode);
Console.WriteLine("str_UTF8 = " + str_UTF8);
Console.ReadKey();
}
static void PrintByteArray(byte[] bytes)
{
var str = bytes.Select(x => "0x" + x.ToString("X2"));
Console.WriteLine("Bytes = {{ {0} }}", string.Join(", ", str));
}
}
}
Tweet