2011-10-29 4 views
2

만약 내가은 "¢ ​​DOMDocument를 XPath를

<p id='test'>TEST&trade;</p> 

를 â로 변환하고있는 DOMDocument를 사용하여 텍스트의 모든 노드를 추출 어디에서 PHP 함수에 HTML을 통과

document.getElementById('test').innerHTML; 

을 사용됩니다 ™ 및 XPath.

PHP가 콘텐츠를 가져 오면 &trade;은 ™으로 변환됩니다. 나는 XPath를 통해 실행하고 텍스트 노드로 다시 온다 : 나는 오히려 다음 &trade;을 통과 할 수 있도록 무엇을 잘못 가고, 또는이 경우 방법은 자바 스크립트 측면에 하나, 그것을 해결 모르겠습니다

TESTâ„ ¢ 

™.

도움을 주시면 감사하겠습니다.

답변

1

PHP에서 htmlentities()을 실행하는 &trade;이 아닌 변수가 TM 문자와 함께 전달되는 값이 처리되어야합니다.

+0

그 중 하나가 작동하지 않습니다, 그냥 반환 â € – eagle12

0

"다시 온다는 말"보다 정확히 말해야합니다. ™는 UTF-8 인코딩으로 어딘가에 쓰여진 것처럼 보입니다. 그리고 UTF-8 인코딩으로되어있는 것을 인식하지 못하는 무언가에 의해 같은 바이트가 읽혀지고 라틴어 1 또는 유사하다고 가정합니다. 이 문제를 해결하려면 문자를 작성한 소프트웨어 및 소프트웨어를 읽는 소프트웨어의 구성을 신중하게 검토해야합니다.

0

마이클이 말한 것은 사실입니다. 또한 XML 프로세서는 문자 엔티티 (예 : &tm;)를 실제 문자 값으로 변환해야하며 기본적으로 일부 일반적인 문자 세트로 인코딩 된 문자로 출력을 생성합니다. 이것을 막기위한 용감한 조치가 필요하며 대개 "좋은 생각"이 아닙니다. 그래서 당신은 그것을 시도하고 포기해야한다. 내 생각에 HTML을 전달하는 함수가 다른 문자셋이 아닌 utf-8로 해석하도록 지시함으로써 더 나은 서비스를 제공 할 수있다. 시스템 기본값).