2014-02-14 4 views
0

У меня на следующие строки XML в PHP:PHP SimpleXMLElement специальный символ кодирования/декодирования

$str="<name>An☢maly</name>"; 

тогда я делаю следующее:

$tmp=new SimpleXMLElement($str); 

если я:

echo $tmp->name; 

Я получаю это:

An☢maly 

Когда я делаю:

echo utf8_decode($tmp->name); 

я получаю:

An?maly 

Как получить PHP, чтобы отобразить этот забавный характер, она также делает это следующим образом:

ƎnƔy™ = ?n?y? 

ответ

1

Использование Try

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, что также может быть вашей проблемой.

Смежные вопросы