안녕하세요 마블랑입니다.
얼마전에 프로젝트를 진행하면서 byte 배열을 문자열로 컨버팅을 할때 문제가 발생을 하더군요
여유롭게 사이즈를 잡아놓은 바이트 배열에서 문자 '\0'을 공백으로 문자열로 컨버팅을 해버리니 문자열 길이를 출력해보니 공백까지도 포함해서 길이가 출력이 되더군요.. (무슨이유인지를 몰랐습니다.)
string.trim이나 string.replace를 사용해 보아도 제거가 되지 않아서 여러가지 방법을 찾아보니 아래같이 코딩을 하니 해결이 되었습니다.
Encoding.ASCII.GetString(array).TrimEnd('\0');
Trim은 Trim인데 TrimEnd를 사용하니 되더군요.
문자열로 컨버팅을 한뒤 텍스트 박스에 많은 데이터를 출력을 했는데 해당 문자열만 공백이 길어져서 건너뛰기가 되어서 이상해서 원인을 발견해보니 '\0'을 문자열로 처리해서 그랬습니다.
혹시나 다른분들도 같은 문제가 있을수도 있으니 간단하게 포스팅을 합니다~
이상 마블랑이었습니다.
읽어주어서 고맙습니다.
'개발 이야기 > C# 이야기' 카테고리의 다른 글
C# .Net 통신용 구조체, 마샬링 (0) | 2020.05.22 |
---|---|
C# .Net Image.Stretch 속성 (0) | 2020.04.18 |
C# .Net WPF Textbox Enter키 입력 및 자동 줄바꿈 (0) | 2020.03.28 |
c# .Net 할당되지 않은 지역 변수를 사용했습니다. (0) | 2020.03.25 |
C# .Net Array.Copy() 바이트 복사 (0) | 2020.03.23 |
댓글