UTF-8 vs UTF-8 (B) 비교

JooJu·2023년 12월 4일

BOM(Byte Order Mark)

간단히 설명하자면 여러 UTF 인코딩 파일의 타입을 구분하기 위해 파일의 앞부분에 구분 코드를 추가하는 것입니다.

BOM은 UTF-16의 BE(빅엔디안)과 LE(리틀엔디안) 모드를 구분하기 위해 탄생했습니다.
BE(빅엔디안)과 LE(리틀엔디안)의 차별점은 메모리에 저장되는 방식입니다.
두 방식이 다르다는 것을 명시하기 위해 유니코드 문서의 첫 번째에 값을 삽입하여 구분합니다.
이런 방식을 BOM 이라고 합니다.

UTF-8 vs UTF-8(B)

기본적으로 UTF-8은 UTF-16과 달리 인코딩 방식이 1개이므로 BOM이 필수적이지 않습니다.
있으나 없으나 동일하게 인코딩되어 디코딩 하는데도 문제가 없죠.

Unix 계열에서는 UTF-8을 기본적으로 사용하여 별 문제가 없지만, Windows의 기본 내장 프로그램(메모장 등)에서는 UTF-8(B)를 기본으로 사용하고 있습니다.

만약 UTF-8로 저장되어 있는 문서를 메모장을 이용해 열고, 수정하여 저장했다면 그 파일은 이제 UTF-8(B)로 저장됩니다.


Situation

사용하던 PMD 룰셋에서 신규 룰셋을 추가하고, 기존의 룰셋을 변경해 적용시키는 과정에서 오류 발생

Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 
프롤로그에서는 콘텐츠가 허용되지 않습니다.

Solution

기존의 Windows의 메모장에서 수정하여 저장했던 것을 방식을 변경하여 이클립스에서 파일을 열어 수정하고 저장하니 기존과 동일하게 UTF-8로 저장되었으며,
정상적으로 PMD 룰셋 적용도 되었다.


장장 한달만의 PMD 룰셋 변경 및 추가 개발이 끝났다. 이 과정에서 PMD 업그레이드가 필요하다는 사실도 알게 되어 기한이 더욱 촉박하게 되었지만, 그래도 일단 큰 산 하나를 넘은 것 같아 뿌듯하다.

profile
Junior Developer / 기록을 위한 공간입니다.

0개의 댓글