안녕하세요 마블랑입니다.
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() 을 사용하면 바이트 값을 그대로 문자열로 가져옵니다.
이상 마블랑이었습니다.
읽어주어서 고맙습니다.
'개발 이야기 > C# 이야기' 카테고리의 다른 글
C# .Net WPF 의존프로퍼티(DP) (0) | 2020.03.16 |
---|---|
C# .Net 문자열 나누기 Split (0) | 2020.03.14 |
C# .Net OpenFileDialog 여러파일선택 (0) | 2020.03.07 |
VisualStudio .Net 버전 3.0 빌드문제 해결 (0) | 2020.02.26 |
C# Thread 시작과 종료 (0) | 2019.07.03 |
댓글