我正在尝试使用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](
希望你能帮我告诉我这里我做错了什么或者使用哪种字符集。
大卫
答案 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部分!