2009-10-15 8 views
2

ISO-8859-15 인코딩을 사용하는 XML 파일을 작성했으며 피드의 대부분의 데이터가 htmlspecialchars()를 통해 실행됩니다.PHP에서 simpleXML 및 악센트 부호가있는 문자

그런 다음 simplyxml_load_string()을 사용하여 내 스크립트에서 사용할 XML 파일의 내용을 검색합니다. 그러나 특수 문자 (예 : é á ó)가 있으면 "Ã © ¡ ³"로 나타납니다. The

적절한 특수한 강조 문자를 표시하려면 어떻게해야합니까?

답변

3

아마도 XML 데이터가 실제로 인코딩 된 것보다 출력에 다른 문자 인코딩을 사용하고있을 것입니다.

설명에 따르면 XML 데이터는 UTF-8로 인코딩되지만 출력은 ISO 8859-15를 사용합니다. UTF-8은 ª (U + 00E9)을 0xC3A9로 인코딩하므로 ISO 8859-15에 각각 Å©의 두 문자를 나타냅니다.

출력에 UTF-8을 사용할 수도 있습니다. 또는 mb_convert_encoding을 사용하여 UTF-8에서 ISO 8859-15로 데이터를 변환하십시오.

+2

검보, 나는 거의 2 년 후 귀하의 게시물에 왔지만, 비슷한 문제가있어 정말 도움이되었습니다. 감사합니다! 내가 사용한 솔루션은 SimpleXMLElement로부터 출력물을 출력 할 때'htmlentities ($ string, ENT_QUOTES, 'UTF-8');이다. –

관련 문제