DOMDocument를 사용하여 HTML을 구문 분석하고 있지만 인코딩이 손실된 것 같습니다. HTML을 로드할 때. HTML의 일본어 문자는 잘못된 텍스트로 대체되지만, echo를 통해 HTML 문자열을 직접 출력할 때는 올바르게 표시됩니다.
DOMDocument에서는 입력 문자열이 ISO-8859-1에 있다고 가정합니다. (HTTP/1.1 기본 문자 집합)이 기본적으로 사용됩니다. UTF-8 문자열을 구문 분석할 때 이 잘못된 가정으로 인해 잘못된 해석이 발생하여 문자가 깨질 수 있습니다.
DOMDocument가 HTML 문자열을 올바른 인코딩으로 로드하도록 하려면 다음과 같은 몇 가지 옵션이 있습니다.
다음은 메타 문자 집합 선언을 사용하는 예입니다.
$profile = '<p>イリノイ州シカゴにて、アイルランド系の家庭に、9</p>'; $dom = new DOMDocument(); // Add meta charset declaration $contentType = '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'; $dom->loadHTML($contentType . $profile); echo $dom->saveHTML();
이렇게 하면 올바른 UTF-8 인코딩으로 HTML 문자열이 로드됩니다. , 원래 일본어 문자를 보존합니다.
위 내용은 내 PHP DOMDocument loadHTML 함수가 UTF-8 인코딩을 올바르게 처리하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!