UTF-8 w/o [스퓨리어스] BOM으로 인코딩 된 파일을 편집하는 과정에서 내용에 ASCII 또는 ANSI 범위를 벗어나는 유니 코드 문자가 없어 질 수 있습니다. 파일을 다시 열 때 일부 텍스트 편집기 (Notepad ++)는 ASCII/ANSI로 인코딩 된 것으로 해석하고 그대로 엽니 다. 변경 사항을 알지 못하면 사용자는 ANSI로 저장 한 이후 쓸모 없게 렌더링 된 ANSI가 아닌 유니 코드 문자를 계속 편집합니다. ANSI 파일을 UTF-8없는 BOM으로 열려면 메뉴 옵션 (메모장 + +)이있을 수 있지만 실수로 유니 코드 인코딩을 사용하는 ANSI 파일을 무시하는 역의 문제가 발생합니다.ASCII/ANSI 형식으로 UTF-8 파일을 의도하지 않게 인코딩하는 것을 방지하려면 어떻게해야합니까?
답변
한 가지 해결 방법은 ANSI 범위를 벗어나는 문자를 파일의 주석에 추가하는 것입니다. 디코딩 알고리즘에 따라 편집기 (Notepad ++)가 파일을 UTF-8없는 BOM으로 인코딩 된 것으로 인식하게 할 수 있습니다. < 메타 HTTP-당량 = "Content-Type을"내용 = "텍스트 : 여기에 이러한 유니 코드 주석과 함께 U + 05D0 히브리어 문자 ALEF 헤더의 문자 집합 정의를 따를 수 있습니다 예를 들어 HTML 문서에서
/html로; 문자셋 = UTF-8 "> < - א - >당신이 파일이 보일 때 에디터가 ASCII/ANSI와 UTF-8/BOM, 오 w 사이의 차이를 말할 것을 제안 방법! 같은?
UTF-8로 인식되도록하려면 BOM을 추가하거나 파일에 UTF-8 문자가 포함되도록하십시오.
안녕 Anon! 죄송합니다. 제 자신의 질문에 대한 답변을 제 시간에 볼 수있을만큼 빨리 업로드하지 않았습니다. 해결책은 당신이 제안한 것이 었습니다. –
가능한 경우 UTF-8을 사용하도록 편집기를 구성하십시오. 가능하지 않은 경우 편집기 작성자에게 불평하십시오. 유니 코드를 대상으로하지 않는 문자 집합은 IMO이며 더 이상 사용되지 않으며 이와 같이 처리되어야합니다.
ASCII 공간에서 문자 만 사용하는 파일 (7 비트 파일)은 UTF-8에서 거의 동일하므로 ASCII 인코딩으로 전달해야한다면 유니 코드 문자를 입력하지 마십시오. .
답변 해 주셔서 감사합니다. 이 문제에서 내가 발견 한 사실은 파일이 전달하는 정보 (텍스트)가 수정 된 경우 파일이 물리적 상태 (인코딩)를 변경할 수 있다는 것입니다 (ASCII가 아닌 유니 코드 범위의 단어 하나를 편집하는 동안 및 다른 ASCII charcters로 만든 단어). 그것은 당신이 쓰는 단어에 따라 갑자기 색깔을 바꿀 펜과 같은 것입니다. –
왜 BOM이 "허위"라고 말합니까? – ChrisW
"UTF-8의 경우 엔코딩 스키마는 UTF-8 코드 단위 (= 바이트)로만 구성되므로 UTF-8로 표현 된 데이터의 빅 엔디안 바이트 순서와 리틀 엔디안 바이트 순서는 문제가되지 않습니다. 16 비트 및 32 비트 인코딩 형식의 경우 바이트 직렬화는 코드 단위를 각각 2 바이트 또는 4 바이트로 분할해야하며 이러한 바이트의 순서는 명확하게 정의되어야합니다. " (유니 코드 북, 36 페이지, http://www.unicode.org/versions/Unicode5.0.0/ch02.pdf) BOM을 UTF-8 (UTF-8의 MS 메모장)에 추가하는 것은 UTF-8 컨텐츠의 구별 –
UTF-8을 구별하기 때문에 진실되고 유용합니다 (허위가 아닌). – ChrisW