그날 동료들과 xml의 인코딩 속성 과 파일 형식의 관계에 대해 논의하던 중 드디어 완전히 이해하게 되었습니다.
이전에 제가 이해한 것은 xml의 인코딩 정의가 파일 형식과 일치해야 한다는 것입니다. 즉, 이러한 XML Introduction (나중에 FF FE가 utf-8의 BOM이 아니라는 사실을 알게 됐습니다... 그래서 오해가 오래 지속되었다는 뜻입니다...)
논의의 여러 단계에 대해 간단히 이야기해 보겠습니다.
토론 초반에 인코딩 값이 파일 형식(예: BOM, BOM은 Byte Order Mark의 약자)과 일치해야 한다고 확실히 말씀드렸습니다. 그렇지 않으면 XML을 구문 분석할 때 오류가 발생할 수 있습니다(예: 문서에 특정 UNICODE 문자가 포함되어 있고 인코딩이나 BOM에서 지정한 형식이 일치하지 않으면 오류가 발생합니다. 당시의 의미는 이것이었습니다. 그런 다음 그렇지 않은 것 같다고 말했습니다. DELPHI로 만든 XML 파일에는 XML에 BOM이 없으며, 지정된 인코딩은 UTF-8로 IE에서 정상적으로 열 수 있습니다.
자신이 생성한 XML 파일에 BOM이 없다는 사실을 발견했을 때 흥미로운 점은 UE를 사용하여 UNICODE 문자가 포함된 파일을 열 때 UE가 자동으로 파일 앞에 FF FE를 추가하여 파일이 정상적으로 표시되므로 UE에서 원래 16진수로 된 BOM이 없는 파일을 찾아보면 추가 BOM이 표시됩니다. 이 기능은 UE의 OPTIONS에서 찾을 수 있습니다. 스스로요.
그런데 어떻게 이런 일이 일어날 수 있을까 조금 혼란스러워졌고, 생각하고 또 생각했는데 갑자기 그는 다음과 같은 내용의 메시지를 보냈습니다.
W3C 정의 파서가 XML 파일의 인코딩을 올바르게 읽는 방법에 대한 세 가지 XML 규칙:
1. 문서에 BOM(바이트 순서 표시)이 있는 경우 일반적으로 유니코드 형식으로 저장되면 BOM이 포함되고 ANSI는 그렇지 않습니다. 아님) , 파일 인코딩이 정의됨
2. BOM이 없는 경우 XML 선언의 인코딩 속성을 확인합니다
3. 위 두 가지 중 어느 것도 없으면 XML로 간주됩니다. 문서는 UTF-8로 인코딩됩니다.
이 세 가지 규칙을 사용하면 규칙이 훨씬 더 명확해집니다.
먼저 XML 파서는 파일의 BOM에 따라 파일을 구문 분석합니다. BOM을 찾을 수 없으면 XML에서 인코딩 속성으로 지정된 인코딩이 사용됩니다. utf-8은 기본적으로 문서를 구문 분석하는 데 사용됩니다. 그런 다음 BOM과 ENCODING이 모두 있는 경우 BOM에서 지정한 것이 우선합니다.
아! 갑자기 표준 문서가 있으면 얼마나 좋을지 느꼈습니다! 너무 자연스럽긴 하지만.
이제 드디어 xml의 인코딩과 파일 형식의 관계를 이해하게 되었습니다. 이 음반에는 몇백 단어밖에 안 들어있지만, 우리가 그것에 대해 논의할 때 소요된 총 시간은 거의 2시간 정도였습니다.
위 내용은 XML 인코딩에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!