[Java] byte 배열 -> 문자열 변환 시 주의점
자바의 문자열은 문자당 2바이트씩 해서, UTF-16의 형식을 사용한다.
그래서 통신을 할 때는 UTF-8로 인코딩하기 위해 byte배열로 변환해서 처리하곤 하는데, 여기에서 주의할만한 점이 하나 있다.
byte 배열 뒤쪽에 남는 공간이 있으면 그걸 문자열로 만들때도 널 문자로 박아버린다는 것이다.
아래는 간단한 예제다.

분명히 텍스트는 5글자인데. 길이는 1014이란다.
널문자가 그대로 따라가서 그렇다.
이렇게만 보면 별로 와닿지 않겠지만, 문자열을 비교할때나 json 파싱 등에서 문제가 발생할 수 있다. 내가 그랬다.
널문자도 비교를 하더라...


임시방편은 trim 메서드로 뒤의 쓰레기를 날려버리는 것이다.

이제야 제대로 돈다.