2014-02-14 3 views
0

내가 PHP에서 folowing XML 문자열있어 디코딩PHP SimpleXMLElement 특수 문자 인코딩/

$tmp=new SimpleXMLElement($str); 

을 내가 할 경우 :

echo $tmp->name; 

알겠습니다.

An☢maly 

내가 할 경우 :

echo utf8_decode($tmp->name); 

내가 얻을 :

An?maly 

가 어떻게 PHP가 재미 문자를 표시하려면 어떻게해야합니까, 또한 다음과 작업을 수행합니다

ƎnƔy™ = ?n?y? 

답변

1

에 한번 사용을 출력하기 전에

header('Content-type:text/html;charset=utf-8'); 

(당신이 브라우저를 사용하는 경우)

PS : Anâ~ ¢ 말리 -이 브라우저는 "ISO-8859-1"의 페이지를 렌더링 할 때 출력이 대신 캐릭터 세트입니다 " UTF-8 "

+0

이것은 브라우저가 나에게 혼란 스러웠다. XML 문서는 처음부터 UTF-8 이었지만 html은 정의되지 않았다. – Anomaly

1

그게 이상 하네, 똑같은 일을하고있어 웹 브라우저에 제대로 표시되고있어.

<?php 
$str="<xml><name>ƎnƔy™</name></xml>"; 
$tmp=new SimpleXMLElement($str); 
echo $tmp->name; 
?> 

원본 파일을 UTF8로 인코딩 된 파일로 저장하지 않으면 제대로 작동하지 않는 것으로 나타났습니다. 프로그래머의 메모장을 사용하고 파일> 속성을 ​​클릭하고이를 달성하기 위해 '인코딩'매개 변수를 UTF-8로 변경했습니다.

또한 UTF8 문자는 Windows 명령 줄에서 올바르게 인쇄되지 않으며 문제 일 수 있습니다.