자막 자료실 문제의 원인 !

자유게시판

자막 자료실 문제의 원인 !

M 再會 1 6502 0

BOM (봄; Byte Order Mark)은 '바이트 순서 표시'입니다.



유니코드가, little-endian 인지 big-endian 인지 아니면 UTF-8 인지 쉽게 알 수 있도록, 유니코드 파일이 시작되는 첫부분에 보이지 않게, 2~3바이트의 문자열을 추가하는데 이것을 BOM이라고 합니다. 텍스트 에디터 화면에서는 보이지 않고, 헥사 에디터(Hex Editor)*로 열었을 때만 보입니다.







little-endian 의 BOM:

FF FE



big-endian 의 BOM:

FE FF



UTF-8 의 BOM:

EF BB BF


 


 


UTF-8에는 BOM이 없는 것이 보통인데, 오래된 프로그램은 BOM이 있는 UTF-8 파일에 오작동할 수 있습니다.



그렇지만 한국어 편집에서는 BOM이 있는 UTF-8이 더 좋습니다. 만약 'BOM이 없는 UTF-8 파일'에 영문과 숫자만 있고 한글이 없다면, 편집기가 그 파일을 유니코드가 아닌 일반 아스키 파일로 오인하기 때문입니다.



그런데 인터넷에 올릴 HTML/CSS/XML 파일을 UTF-8로 작성할 때에는 BOM이 있으면 문제가 생길 수 있습니다.





* 울트라에디트의 헥사 모드(Ctrl+H)로 UTF-8 파일을 보면, 16비트 유니코드처럼 보이고 BOM이 있든 없든 항상 FF FE 라는 엉뚱한 BOM이 나타납니다. 이것은 울트라에디터가 유니코드를 편집할 때, 내부적으로 '16비트 little-endian 유니코드 (UTF-16LE)'로 변환하여 편집하기 때문입니다. 진짜 헥사 에디터로 보아야만 UTF-8의 BOM인 EF BB BF 가 제대로 보이게 됩니다. 물론 BOM이 없는 UTF-8이라면 BOM이 없는 것으로 나옵니다.


 


-------------------------------------------------------


 


 


 


에디트 플러스를 이용해 UTF-8 로 저장을 하게 되면 BOM 이생긴다.

그로 인해 session_start(); 와 같은 함수가 사용될시 headers already sent 에러가 발생이 된다.

소스상에는 분명 output 된곳이 없지만, 에러가 발생된다.

이유인즉 UTF-8로 저장시 자동으로 UTF-8을 인식하는 BOM이 추가되는것이다.



그렇다면 BOM 이란 녀석은 뭐하는 놈인가?

http://en.wikipedia.org/wiki/Byte_Order_Mark  이곳에서 정답을 찾으세요~!!





editplus v 2.30 에서 BOM 제거 설정은

Tools > Preferences > Files > UTF-8 signature 항목에서 세번째인 Always remove signature 를 선택하면된다.



출처 : http://blueb.net/blog/744

Facebook Twitter GooglePlus KakaoStory NaverBand 신고
 
1 Comments
M 再會  
해결했습니다. 꾸벅~~