IT 상식

메모장으로 utf-8 파일을 수정하지 말자

mt프로젝트 2016. 9. 16. 10:18
 svn이나 git을 사용하여 여러사람들과 함께 개발하는 사람이라면 때때로 로컬 파일과 서버의 파일이 분명 내용은 똑같은데 소스 update 하라고 뜨는 경험 한두번쯤은 있었을 것 같다.
 막상 소스를 diff 해보면 파일 의 제일 첫번째 부분에 뭔가가 다르다는데 뭐가 다르다는것인지 이해가 가지 않는다.
 이때 두 소스를 울트라에디트나 에디트플러스같은 도구를 사용하여 헥사코드로 열어보면
EF BB BF
라는 3 바이트가 둘 중 한 파일의 가장 앞부분에 써져 있을 것이다.
 해당 부분이 바로 BOM(Byte Order Mark)인데, 이 BOM은 메모장과 같은 윈도우 에디터에서 해당 문서가 UTF-8 문서라는것을 표시하는 부분이다.(물론 utf-16 등의 다른 인코딩에서는 다른 형태의 바이트가 붙는다) 그런데 이건 일반적으로 유닉스 계통에서는 쓰지 않을뿐만 아니라 때로는 뭔가 오류를 일으키기도 한다는 것이 문제다.
 특히 php로 페이지를 만들었는데 자꾸 UI가 깨진다던가 스크립트가 멈추는데 소스상의 문제가 보이지 않는다면 그 파일에 BOM이 붙어있는지 확인하고 제거해주도록 하자. BOM이 사라지면서 원인 불명의 오류도 함께 사라질 것이다.