0

我正在尝试使用 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](

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

大卫

4

3 回答 3

0

无论您从哪里获取数据,都不会以 UTF-8 格式提供给您。我假设它是 Windows-1252,但我可能是错的。

header( 'content-type: text/xml' );
$domTree = new DOMDocument( '1.0', 'Windows-1252' );
于 2013-01-18T15:34:04.210 回答
0

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

$enc = mb_detect_encoding($text);
$text = @mb_convert_encoding($text, 'UTF-8',$enc);      
$text = htmlentities($text,ENT_IGNORE,'UTF-8');
于 2013-01-18T14:35:49.710 回答
-2

在 xml 节点中使用 CData 部分!

于 2013-01-18T14:31:28.353 回答