본문 바로가기
개발 이야기/C# 이야기

C# .Net String to Byte array, Byte array to String Convert문자열 변환

by 런던살자 2020. 3. 14.

안녕하세요 마블랑입니다.

 

C#에서 데이터 통신을 할때면 바이트형식으로 변환해야할 때가 많습니다.

 

통신 패킷을 구조체로 만들어 전체를 변경하는 방법이 있긴 하지만 데이터를 하나씩 일일이 바이트로 변경해야할 경우가 있어 문자열을 바이트 배열로 변경하는 방법에 대해서 소개하겠습니다.

 

 

 

1. string(문자열) to byte array

byte[] arrbyte = Encoding.UTF8.GetBytes("testMessage"); 

//변환 데이터 출력
string strOutput="";
for (int i = 0; i < arrbyte.Length; i++) {
	strOutput += arrbyte[i] + " ";
}

MessageBox.Show(strOutput);

출력 : 116 101 115 116 77 101 115 115 97 103 101

 

데이터 확인을 위해 출력 부분도 코드로 추가했습니다.

 

 

2. byte array to string(문자열)

byte[] arrtemp = new byte[5];
arrtemp[0] = 0x31;
arrtemp[1] = 0x32;
arrtemp[2] = 0x33;
arrtemp[3] = 0x34;
arrtemp[4] = 0x35;

//데이터 변환 확인
string strtemp = Encoding.Default.GetString(arrtemp); 
MessageBox.Show(strtemp);

출력 : 12345

 

 

추가로 바이트를 Hex(헥사)값으로 문자열 출력을 할때 유용한 방법입니다. 

byte[] arrtemp = new byte[5];
arrtemp[0] = 0x36;
arrtemp[1] = 0x37;
arrtemp[2] = 0x38;
arrtemp[3] = 0x39;
arrtemp[4] = 0x30;

string strOutput = BitConverter.ToString(arrtemp); // byte -> string
MessageBox.Show(strOutput);

출력 : 36-37-38-39-30

 

BitConverter.ToString() 을 사용하면 바이트 값을 그대로 문자열로 가져옵니다.

 

 

이상 마블랑이었습니다.

 

읽어주어서 고맙습니다.

댓글