Sunday, February 14, 2010

유니코드 사용시 No BOM 이란

질문 :
Text File 저장시
Unicode (UTF-8) 과
Unicode (UTF-8, no BOM)
이 있는데 둘이 뭐가 다른가?

답 :
BOM 이란 Byte order mark 이다.
with BOM 으로 저장하면 html 에서 인코딩을 따로 지정해주지 않아도 Safari 등의 웹브라우저가 제대로 읽을 수 있다. (BOM이 없으면 사파리가 html을 제대로 읽지 못한다. 반면 FireFox는 BOM이 없어도 잘 읽는다.)

또한 한글 텍스트 파일에서는 BOM 값이 제대로 되어 있어야
preview 에서 한글이 깨지지 않고 보인다(참고).

그러나 UNIX shell script 를 저장할 때 with BOM 으로 하면 스크립트 수행에 문제가 생길 수 있다.
따라서 UNIX shell script 는 without BOM 으로 저장할 것.

레퍼런스 :
Unix command files, UTF-8, and the byte order mark UNIX
(본문중에서) I discovered that the BOM makes Safari read HTML as Unicode automatically, without the need for a charset declaration, or messy entity codes for special characters. So now I can just type HTML freely in any languages and scripts I want.

I copied the file, saved it as ~/.bash_alias, and created ~/.bash_profile to source it. But nothing would work. I got the strangest errors, like -bash: source: command not found... hen I changed the file to start with a blank line, all aliases loaded, with one error about an empty command. Ahha! So the problem turned out to be the file format: the BOM made the first word of the first line into nonsense. So I resaved both of my dot-files in "UTF-8, no BOM" mode, and all is well.

No comments:

Post a Comment