&符号(&)的utf8_decode错误

时间:2011-01-11 09:26:20

标签: php simplexml utf8-decode

我一直在构建一个返回XML代码的API。例如,API将返回:

<message>hello, this is a message &amp; it used htmlsepcialchars</message>

我正在使用file_get_contents()和simplexml_load_string()将返回的信息加载到数组中。

然后我使用utf8_decode()将消息转换为接收网站上的友好字符集。但是,我收到以下消息,其中的引脚指向消息中的&符号(&amp;):

Warning: main() [function.main]: unterminated entity reference 

由于&符号,邮件的其余部分被截断。任何想法如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

似乎你的&符号没有被编码所以要么对它进行双重解码,要么将它放在CDATA字段中。

通常这样的特殊字符应放在CDATA字段中。它省去了编码的麻烦。 php DOM创建函数具有您所需的功能。


$doc->createCDATASection

当然:

http://www.w3schools.com/Xml/xml_cdata.asp

http://fr.php.net/manual/en/function.domdocument-create-cdata-section.php

答案 1 :(得分:0)

嗯,simpleXML字符串必须是utf8编码的,并且值实体应该被转义。 您的代码中是否真的需要utf_decode()

答案 2 :(得分:0)

找到我的答案,用户错误。我基本上在我的代码中的某个地方再次逃避。