• Daum
  • |
  • 카페
  • |
  • 테이블
  • |
  • 메일
  • |
  • 카페앱 설치
 
짬뽕장02
카페 가입하기
 
 
 
카페 게시글
우리들의 이야기 바이트 오더 마크 BOM. / 윅희에서
칡 흰 추천 0 조회 10 24.03.04 05:16 댓글 8
게시글 본문내용
 
다음검색
댓글
  • 작성자 24.03.04 05:21

    첫댓글 유니코드/ 위키 https://ko.wikipedia.org/wiki/%EB%B0%94%EC%9D%B4%ED%8A%B8_%EC%88%9C%EC%84%9C_%ED%91%9C%EC%8B%9D

    부호화 형식별로
    UTF-7
    UTF-8
    CESU-8
    UTF-16
    UTF-32
    UTF-EBCDIC
    SCSU
    퓨니코드
    GB18030

    UCS

    양방향 텍스트

    BOM

    한중일 통합 한자

    유니코드 범위 목록

    유니코드 등가성

    유니코드와 HTML

    유니코드와 전자 우편

    유니코드 글꼴

  • 작성자 24.03.04 05:33

    뭐 아무튼 범위를 알아봐야겠다 그리고,

    바이트 순서 마크(표식). BOM.

  • 작성자 24.03.04 05:29

    바이트 순서 마크(표식). BOM.

    유니코드 문자 U+FEFF를 쓴다. 인코딩 방식에 따라서 FF FE로 표기하기도 하나, 실제로 해석할 때에는 U+FEFF로 읽는다. 그리고 U+FFFE에는 문자가 처음부터 배당되지 않았기에, U+FFFE가 실제로 쓰일 일은 없어서 U+FEFF가 U+FFFE와 혼동될 여지가 앞으로도 없다.
    유니코드의 아랍 문자용 블럭인 Arabic Presentation Forms-B에 끼어 있다.
    정식 이름은 ZERO WIDTH NO-BREAK SPACE이다. 공백의 일종이지만 원래 용도 대신 BOM으로 쓰며, zero width non-breaking space의 역할은 U+2060인 WORD JOINER가 대신한다.

    이 문자는 보통 UTF-16으로 된 파일의 엔디언이 올바르게 판단될 수 있도록 하기 위해서 파일의 맨 앞에 삽입된다. 실제로 UTF-16의 처리 방식은 순서에 따라 빅 엔디언(big endian, be)과 리틀 엔디언(little endian, le) 2가지가 있다. 두 방식 다 나름의 장점이 있기 때문에 아직도 둘 다 쓴다.

  • 작성자 24.03.04 05:30

    @칡 흰 UTF-8은 엔디언 문제가 없는데도 일부 텍스트 에디터는 강제로 U+FEFF 문자를 삽입해서 문제를 일으키기도 한다. 다만 유니코드 보급율이 느리다보니 일반 유저를 대상으로 하는 텍스트 에디터들의 경우 BOM이 없으면 일단 완성형(및 각 언어별 코드페이지)으로 읽고보는 식으로 처리하는 경우가 상당수. 그러다보니 UTF-8 문서에도 BOM을 넣어두는게 편한 게 사실이다.[1] 그리고 UTF-8에서 BOM은 EF BB BF와 같이 표기된다.

    그런데 이게 유닉스 쪽까지 포함한다면 얘기가 달라진다. PHP의 경우 읽어들이는 내용이 PHP 소스로 되어 있으면 PHP로 실행하기 시작하고, 일반 텍스트로 되어 있으면 텍스트로 읽어들이기 시작하는데 PHP는 BOM을 인식하지 못한다. 그래서 일반 텍스트로 알고 보냈는데 하필 BOM으로 시작하는 바람에, PHP가 시작되니 오작동을 일으키는 것. 이외에 콘솔에서 텍스트 파일 합치는 데도 애로사항이 생길 수 있는 등, 개발자 입장에서는 BOM을 자동으로 넣어주는 프로그램이 오히려 욕먹는다.

  • 작성자 24.03.04 05:31

    @칡 흰 이런 경우 저장 시 BOM을 추가할지 말지 선택할 수 있는 에디터 또는 IDE로 문서를 저장해야 한다. Notepad++, IntelliJ IDEA, Visual Studio Code, EditPlus 등의 개발 툴은 UTF-8에 BOM을 추가할지 여부를 선택할 수 있다.

    대표적으로 BOM을 자동 삽입하는 텍스트 에디터가 Microsoft Windows의 보조 프로그램인 메모장이다. Windows 쪽 에디터 프로그램들은 BOM이 없으면 UTF-8이라는 것을 인식하지 못하는 경우가 종종 발생한다. 다만 Windows 10 1903부터 기본 인코딩이 기존의 ANSI(=MBCS)에서 BOM 없는 UTF-8으로 바뀌었으며, 저장 시에 BOM을 붙일지 선택할 수 있게 바뀌었다. Visual Studio에서는 소스 파일의 인코딩을 UTF-8 BOM으로 설정하면 한글이 정상 출력되지만, UTF-8으로 설정하면 파일을 ANSI로 인식해 에디터와 콘솔에서 한글이 전부 깨진 채로 나온다.

  • 작성자 24.03.04 05:31

    @칡 흰 윈도우에서 한글을 출력시키기 위해 UTF-8에 BOM을 붙여 저장한 파일의 경우, 유닉스 계통 컴파일러(GCC, LLVM/Clang 등)와 공유해서 사용하면 BOM의 존재로 인하여 오작동을 일으킬 수도 있다.

  • 작성자 24.03.05 09:38

    쓸 데 없는 짓만 한다는, 욕을 먹는 놈이 되지 말자 ㅋ 한쿡의 글짜는 띄어쓰기를 자 ㄹ해야 함ㅋㅋㅋㅋ 언제나 호갱은 알지 못할 불만과 불평이 있다.

  • 작성자 24.03.05 09:39

    눈에 보이지 않는 특정 바이트를 넣는다.

최신목록