[HTML] UTF-8과 UTF-8(bom)의 차이

Gammi·2023년 1월 18일
0

HTML

목록 보기
5/5

✔ UTF-8


  • 월드 와이드 웹의 가장 일반적인 문자 인코딩

  • JSON은 UTF-8 인코딩만 사용하며 다른 문자열 인코딩은 표준에서 지원X



✔ BOM


  • 바이트 순서 표시(Byte Order Mark)

  • 유니코드 문자 U+FEFF

  • 매직 넘버로 문서의 가장 앞에 추가하여 텍스트를 읽는 프로그램에 여러 가지 정보 전달 가능

  • 윈도우 기본 내장 프로그램에서는 UTF-8(BOM)을 기본으로 사용

    -> UTF-8, UTF-8(BOM) 모두 인식 가능



✔ UTF-8과 UTF-8(bom)의 차이


  • UTF-8(bom)은 텍스트 스트림의 시작 부분에 있는 바이트 시퀀스로 UTF-8로 인코딩 된 것보다 안정적으로 추측할 수 있음

  • 하지만 UTF-8은 인코딩 형식이 고정되어 있기 때문에 UTF-8에서 bom은 필수X, 권장하지도 않음





그렇게 오류가 나고... 더 찾아봤는데 C++에서 메모장 파일을 열었을 때 멀티바이트 문자의 경우 bom이 없는 utf-8로 인코딩된 파일일 때 글자가 깨지는 현상이 나타난다고 했다.

혹시나해서 찾아보니까 한글도 멀티바이트 문자였음!


거기서도 원인은 말하지 않아서...ㅠㅠ


다른 블로그에서는 BOM이 없고 Content-Type 속성에 charset 값이 없을 때 UTF-8로 인코딩을 안하면 locale 설정을 따라가는 게 원인이라고 하는데 이전에 오류났을 때 charset 값도 UTF-8로 넣어봤었고(이미 들어가있었고) locale도 UTF-8로 바꿨는데도 깨진 걸 보면 나는 다른 이유인 것 같음,,,


결론은... 아직까지 원인은 알 수 없고, 멀티바이트 문자(한글, 일본어, 중국어 등)을 사용한 메모장 파일의 경우에는 UTF-8(bom)이 아니면 글자가 깨진다는 것,,,


좀 더 많은 정보는 UTF-8 BOM 이슈로 검색하면 알 수 있음!




bomUTF-8과 UTF-8(bom)의 차이는 여기를 참고했습니다ㅎㅎ

profile
개발자가 되었어요⭐️

0개의 댓글