UTF-8 BOM 이 스타일 오 류 를 일 으 킬 수 있 는 해결 방법

utf-8 인 코딩 을 사용 하여 웹 페이지 를 작성 할 때 bom(Byte Order Mark)의 문제 로 인해 웹 페이지 에 알 수 없 는 빈 줄 이나 어 지 러 운 문자 가 자주 나타 납 니 다.utf-8 인 코딩 방식 이 bom 에 강제 적 이지 않 기 때 문 입 니 다.따라서 utf-8 인 코딩 은 파일 을 저장 할 때 서로 다른 처리 방식 이 나타 납 니 다.예 를 들 어 어떤 브 라 우 저(FireFox)는 모든 utf-8 bom 을 자동 으로 걸 러 낼 수 있 고,어떤(IE)는 bom 을 한 번 만 걸 러 낼 수 있 습 니 다(왜 한 번 입 니까?Include 가 여러 번 파일 을 만 났 을 때 이 문제 에 부 딪 혔 습 니 다editplus 나 다른 편집기 로 파일 에 있 는 BOM 서명 을 삭제 하고 페이지 를 다시 새로 고 칩 니 다.스타일 이 정상 입 니 다.여기 서 BOM 에 대한 설명 을 찾 으 면 이해 할 수 있 습 니 다.UCS 인 코딩 에'ZERO WIDTH NO-BREAK SPACE'라 는 문자 가 있 습 니 다.인 코딩 은 FEFF 입 니 다.FFFE 는 UCS 에 존재 하지 않 는 문자 이기 때문에 실제 전송 에 나타 나 서 는 안 됩 니 다.UCS 규범 은 바이트 흐름 을 전송 하기 전에 문자'ZERO WIDTH NO-BREAK SPACE'를 먼저 전송 하 는 것 을 권장 합 니 다.이렇게 수신 자가 FEFF 를 받 으 면 이 바이트 흐름 이 Big-Endian 임 을 나타 낸다.FFFE 를 받 으 면 이 바이트 흐름 이 Little-Endian 이라는 것 을 나타 낸다.따라서 문자'ZERO WIDTH NO-BREAK SPACE'를 BOM 이 라 고도 부른다.UTF-8 은 바이트 순 서 를 BOM 으로 표시 할 필 요 는 없 지만 BOM 으로 인 코딩 방식 을 표시 할 수 있다.문자'ZERO WIDTH NO-BREAK SPACE'의 UTF-8 인 코딩 은 EF BB BF 입 니 다.그래서 수신 자가 EF BB BF 로 시작 하 는 바이트 흐름 을 받 으 면 UTF-8 인 코딩 임 을 알 수 있다.Windows 는 텍스트 파일 의 인 코딩 방식 을 BOM 으로 표시 합 니 다.UTF-8 인 코딩 된 파일 중 BOM 이 세 개의 바이트 를 차지한다.메모 장 으로 텍스트 파일 하 나 를 UTF-8 인 코딩 방식 으로 저장 하면 UE 로 이 파일 을 열 고 16 진수 편집 상태 로 전환 하면 시작 하 는 FFFE 를 볼 수 있 습 니 다.이것 은 UTF-8 인 코딩 파일 을 표시 하 는 좋 은 방법 이다.소프트웨어 는 BOM 을 통 해 이 파일 이 UTF-8 인 코딩 인지 아 닌 지 를 식별 하고 많은 소프트웨어 가 읽 은 파일 은 반드시 BOM 을 가 져 가 야 한다 고 요구한다.하지만 BOM 을 인식 하지 못 하 는 소프트웨어 가 많다.저 는 Firefox 를 연구 할 때 Firefox 초기 버 전에 서 확장 은 BOM 이 있 을 수 없다 는 것 을 알 았 습 니 다.그러나 Firefox 1.5 이후 버 전 은 BOM 을 지원 하기 시 작 했 습 니 다.PHP 도 BOM 을 지원 하지 않 는 다 는 사실 이 밝 혀 졌 다.PHP 는 디자인 할 때 BOM 문 제 를 고려 하지 않 았 다.즉,UTF-8 인 코딩 된 파일 의 시작 부분 인 BOM 의 세 글 자 를 무시 하지 않 는 다 는 것 이다.반드시

좋은 웹페이지 즐겨찾기