XML Parser Character Encoding

PHP의 XML 확장은 다양한 문자 인코딩을 통해 » 유니코드 문자 집합을 지원합니다. 문자 인코딩에는 소스 인코딩과 대상 인코딩의 두 가지 유형이 있습니다. 문서의 PHP 내부 표현은 항상 UTF-8로 인코딩됩니다.

소스 인코딩은 XML 문서가 parsed될 때 수행됩니다. XML 파서를 생성할 때 소스 인코딩을 지정할 수 있습니다(이 인코딩은 XML 파서의 수명에서 나중에 변경할 수 없음). 지원되는 소스 인코딩은 ISO-8859-1, US-ASCIIUTF-8입니다. 앞의 두 가지는 단일 바이트 인코딩으로, 각 문자가 단일 바이트로 표시됨을 의미합니다. UTF-8은 가변 비트 수(최대 21)로 구성된 문자를 1~4바이트로 인코딩할 수 있습니다. PHP에서 사용하는 기본 소스 인코딩은 ISO-8859-1입니다.

대상 인코딩은 PHP가 XML 핸들러 함수에 데이터를 전달할 때 수행됩니다. XML 파서를 생성할 때 대상 인코딩은 소스 인코딩과 동일하게 설정되지만 이는 언제든지 변경될 수 있습니다. 대상 인코딩은 문자 데이터와 태그 이름 및 처리 명령 대상에 영향을 미칩니다.

XML 파서는 소스 인코딩이 표현할 수 있는 범위를 벗어난 문자를 발견하면 오류를 반환합니다.

PHP가 구문 분석된 XML 문서에서 선택한 대상 인코딩으로 표현할 수 없는 문자를 발견하면 문제의 문자가 "강등"됩니다. 현재 이는 이러한 문자가 물음표로 대체됨을 의미합니다.