Xml错误:错误的字符集?

时间:2013-01-18 14:27:17

标签: php xml encoding character-encoding domdocument

我正在尝试使用DOMDocument通过php生成一个xml文件。但是那里有一些“怪异”的字符,所以它给了我一个编码错误。 error on line 2 at column 81: Encoding error

我正试图将[0.3e](¯``·._.·[name]·._.·´¯)放在那里。

我正在解析它如下

header( 'content-type: text/xml' );
$domTree = new DOMDocument( '1.0', 'UTF-8' );

echo $domTree->saveXML();在最后。

输出如下:

<?xml version="1.0" encoding="UTF-8"?>
<server><errors/><info><value>0</value><value>25</value><value>30</value><value>[0.3e](

希望你能帮我告诉我这里我做错了什么或者使用哪种字符集。

大卫

3 个答案:

答案 0 :(得分:0)

您可能需要强制输入字符串的编码并将任何剩余的实体转义为HTML实体:

$enc = mb_detect_encoding($text);
$text = @mb_convert_encoding($text, 'UTF-8',$enc);      
$text = htmlentities($text,ENT_IGNORE,'UTF-8');

答案 1 :(得分:0)

无论您从何处获取数据都不是以UTF-8提供给您的。我认为它是Windows-1252,但我可能是错的。

header( 'content-type: text/xml' );
$domTree = new DOMDocument( '1.0', 'Windows-1252' );

答案 2 :(得分:-2)

在xml节点中使用CData部分!