for WPF developers
Home Profile Tips 全記事一覧

byte[] から string 型に変換する

(2016/12/02 21:35:26 created.)

byte[] から string 型に変換するには、System.Text.Encoding クラスの該当する文字コードで GetString() メソッドを使用します。当然ですが文字コードを間違えると文字化けてしまいます。

Program.cs
  1. namespace Tips_Encoding
  2. {
  3.     using System;
  4.     using System.Linq;
  5.     using System.Text;
  6.  
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             var str = "0123あいう";
  12.             byte[] bytes;
  13.             string str_ASCII;
  14.             string str_Unicode;
  15.             string str_UTF8;
  16.  
  17.             Console.WriteLine("str = {0}", str);
  18.  
  19.             Console.WriteLine("-- ASCII ----------------");
  20.             bytes = Encoding.ASCII.GetBytes(str);
  21.             PrintByteArray(bytes);
  22.             str_ASCII = Encoding.ASCII.GetString(bytes);
  23.             str_Unicode = Encoding.Unicode.GetString(bytes);
  24.             str_UTF8 = Encoding.UTF8.GetString(bytes);
  25.             Console.WriteLine("str_ASCII   = " + str_ASCII);
  26.             Console.WriteLine("str_Unicode = " + str_Unicode);
  27.             Console.WriteLine("str_UTF8    = " + str_UTF8);
  28.  
  29.             Console.WriteLine(Environment.NewLine + "-- Unicode --------------");
  30.             bytes = Encoding.Unicode.GetBytes(str);
  31.             PrintByteArray(bytes);
  32.             str_ASCII = Encoding.ASCII.GetString(bytes);
  33.             str_Unicode = Encoding.Unicode.GetString(bytes);
  34.             str_UTF8 = Encoding.UTF8.GetString(bytes);
  35.             Console.WriteLine("str_ASCII   = " + str_ASCII);
  36.             Console.WriteLine("str_Unicode = " + str_Unicode);
  37.             Console.WriteLine("str_UTF8    = " + str_UTF8);
  38.  
  39.             Console.WriteLine(Environment.NewLine + "-- UTF8 -----------------");
  40.             bytes = Encoding.UTF8.GetBytes(str);
  41.             PrintByteArray(bytes);
  42.             str_ASCII = Encoding.ASCII.GetString(bytes);
  43.             str_Unicode = Encoding.Unicode.GetString(bytes);
  44.             str_UTF8 = Encoding.UTF8.GetString(bytes);
  45.             Console.WriteLine("str_ASCII   = " + str_ASCII);
  46.             Console.WriteLine("str_Unicode = " + str_Unicode);
  47.             Console.WriteLine("str_UTF8    = " + str_UTF8);
  48.  
  49.             Console.ReadKey();
  50.         }
  51.  
  52.         static void PrintByteArray(byte[] bytes)
  53.         {
  54.             var str = bytes.Select(x => "0x" + x.ToString("X2"));
  55.             Console.WriteLine("Bytes = {{ {0} }}", string.Join(", ", str));
  56.         }
  57.     }
  58. }