본문 바로가기
지식창고/IT 지식

UTF-8, UTF-8(BOM) 차이

by eteo 2023. 11. 27.

 

 

메모장의 인코딩 옵션을 살펴보면 UTF-8과 UTF-8(BOM)이 있다.

 

 

그리고 Visual studio 고급 저장 옵션에는 서명있는 UTF-8과 서명있는 UTF-8이 있다.

 

둘의 차이는 무엇일까?

 

 

 

 

 

BOM은 Byte Order Mark의 약자로 해당 문서가 UTF-8 인코딩임을 텍스트를 읽는 프로그램에 알리기 위한 용도로 파일 시작 부분에 위치하는 특별한 바이트 시퀀스이다.

 

 

UTF-8과 비교해 UTF-8(BOM)의 차이는 파일 맨 앞에 EF BB BF가 붙는다는 것 뿐인데, UTF-8(BOM) 인코딩의 빈 텍스트 파일을 만들고 format-hex 명령어를 사용해서 hex dump를 해보면 알 수 있다. 

 

 

 

 

 

 

 

UTF-8에 BOM을 붙이는 것은 유니코드 표준에서 허용하지만 필수나 권장사항이 아니고, 대부분의 경우에는 BOM이 없어도 UTF-8로 인코딩된 텍스트 파일을 올바르게 해석할 수 있다. 심지어 BOM이 있으면 텍스트 편집기나 프로그램이 잘못해석하는 경우도 더러 있다.

 

보통 윈도우 프로그램에서 UTF-8(BOM)을 사용하는 경우가 많고, 윈도우를 제외한 다른 플랫폼에서는 UTF-8을 기본으로 사용하는 경향이 있다고 한다.

 

 

때문에 여러 운영체제간 공유해야 하는 텍스트 파일이라면 UTF-8 인코딩을 사용하는 것이 좋을 듯 하다.