본문 바로가기

C# Winform

C# Winform | String to Byte Array | Byte Array to String

by C기억저장소 2020. 12. 8.

C# Winform | String to Byte Array | Byte Array to String

 

  String to Byte Array

 

private byte[] StringToByte(string str)
{
    byte[] bytes = Encoding.Default.GetBytes(str);
    return bytes;
}
cs

 

  Byte Array to String

 

private string ByteToString(byte[] bytes)
{
    string str = Encoding.Default.GetString(bytes);
    return str;
}
cs

 

  Test Code

 

private void btnTest_Click(object sender, EventArgs e)
{
    string str_en = "String Byte";
    string str_kor = "스트링 바이트";
 
    byte[] bytes_en = StringToByte(str_en);
    byte[] bytes_kor = StringToByte(str_kor);
 
    Console.WriteLine("str_en");
    foreach (byte b in bytes_en)
    {
        Console.WriteLine(b);
    }
    Console.WriteLine(ByteToString(bytes_en));
 
    Console.WriteLine("str_kor");
    foreach (byte b in bytes_kor)
    {
        Console.WriteLine(b);
    }
    Console.WriteLine(ByteToString(bytes_kor));
}
cs

 

  Result

 

 

 

  주의 사항

 

1. Encoding 할시 Type을 같은 타입을 사용한다.

Encoding.Default.GetString(bytes);
Encoding.Default.GetBytes(str);
cs

 

2.  한글 깨짐

 

Encoding.Default 를 사용하면 한글 꺠짐을 방지할수 있다.

 

 

 

  Type은 다음과 같다.

Default

ASCII
유니코드 문자를 단일 7 비트 ASCII 문자로 인코딩합니다. 이 인코딩은 U + 0000과 U + 007F 사이의 사이의 문자 값만 지원 합니다. 코드 페이지 20127. 속성을 통해서도 사용할 수 있습니다

Unicode
UTF-16 인코딩을 사용 하 여 유니코드 문자를 인코딩합니다. Little endian 및 big endian 바이트 주문이 둘 다 지원 됩니다. 속성 및 속성을 통해 사용할 수도 있습니다

UTF7
UTF-8 인코딩을 사용 하 여 유니코드 문자를 인코딩합니다. 이 인코딩은 모든 유니코드 문자 값을 지원 합니다. 코드 페이지 65000. 속성을 통해서도 사용할 수 있습니다

UTF8
UTF-8 인코딩을 사용 하 여 유니코드 문자를 인코딩합니다. 이 인코딩은 모든 유니코드 문자 값을 지원 합니다. 코드 페이지 65001. 속성을 통해서도 사용할 수 있습니다

UTF32
UTF-8 인코딩을 사용 하 여 유니코드 문자를 인코딩합니다. Little endian (코드 페이지 12000) 및 big endian (코드 페이지 12001) 바이트 주문이 둘 다 지원 됩니다. 속성을 통해서도 사용할 수 있습니다

 

MSDN

 

Encoding 클래스 (System.Text)

문자 인코딩을 나타냅니다.Represents a character encoding.

docs.microsoft.com