2017년 4월 19일 수요일

04-19

utf-8 ? utf-8 bom? 무슨차이? 왜 오류?


현상 : 가끔씩 페이지 맨 위에 빈 공백이 생김, 찾아보면 빈 공백만 있음, 크롬으로 찾아보면  문자열이 표시되있음

The character in question &#65279 is the Unicode Character 'ZERO WIDTH NO-BREAK SPACE' (U+FEFF) attached to your code on a copy/paste or during a faulty Save its so simple to fix that, just open that file by notepad++ and step follow -->  Encoding->Encode in UTF-8 without BOM. then save that. It work for me as well!

http://stackoverflow.com/questions/15801043/php-include-creates-unwanted-gaps-in-html


해결책 : UTF-8 BOM으로 되있는 페이지를 UTF-8로 변경

QA 1 : BOM(Byte Order Mark)이란?

유니코드가, little-endian 인지 big-endian 인지 아니면 UTF-8 인지 쉽게 알 수 있도록, 유니코드 파일이 시작되는 첫부분에 보이지 않게, 2~3바이트의 문자열을 추가 이것을 BOM이라고 함.

QA 2 : little-endian 인지 big-endian은 무엇인지?

MS윈도에서 내부적으로 사용되는 유니코드(UTF-16LE)는 16비트 즉 2바이트로 하나의 글자를 표현합니다. 바이트가 2개니까 이 바이트에 순서가 정해져 있어야 합니다. big-endian 은 있는 순서 그대로 바이트를 자연스럽게 나열하는 것이고, little-endian 은 속도를 빠르게 하기 위해서 거꾸로 나열하는 것입니다.

MS윈도의 유니코드는 리틀 엔디안 little-endian이 기본값입니다. 빅 엔디안 유니코드는, 울트라에디터 v11 등의 일부 프로그램에서 전혀 인식하지 못했습니다.


반면 UTF-8 에는 리틀 엔디안이나 빅 엔디안의 구분이 없습니다.


결론 : UTF-8 BOM으로 되있는 페이지를 UTF-8로 변경

댓글 없음:

댓글 쓰기