C로 작성된 서버에서 네트워크로 문자열 패킷을 수신했다. 이를 String 으로 변환하려


string msg = new string(msg_data);

위와 같이 했을 경우, msg_data에 패킷 문자열을 고정시키기 위해 실 문자는 5개 문자열만 있지만 실제 데이터 크기가 60개라면 \0로 문자열 끝을 가리키는 문자로 채워진다. string msg에 \0도 문자열로 판단하여 공백이 발생한다. 이는 Trim함수로 공백을 제거하려 해도 되지 않는다. \0 문자로 삭제해야 한다.

msg.TrimEnd(‘\0’);

'프로그래밍 > C#' 카테고리의 다른 글

PNG 16bit grayscale 데이터 읽기  (0) 2022.03.15
Window class name is not valid  (0) 2014.08.06
쓰레드 종료 지연 문제  (0) 2013.08.14
변수 타입  (0) 2013.08.14

+ Recent posts