Â出现在xml feed中的某些字符之前

时间:2011-02-17 11:56:24

标签: php xml special-characters

我的一个节点中有一些带有一些html的xml提要。 所以基本上就像在php中这样做了

<user_id>'.$review[user_id].'</user_id>
<content>'.htmlspecialchars(bbcode($review[content])).'</content>
<content_bbcode>'.htmlspecialchars($review[content]).'</content_bbcode>
<added_date>'.$review[added_date].'</added_date>

xml是ISO-8859-1编码

<?xml version="1.0" encoding="ISO-8859-1"?>

没有更多标题。

另一方面,我只是使用simplexml_load_string来获取文件并将其全部分解为组件部分(节点)。

我的问题是,对于一些角色'£',例如其他人出现在角色之前,而在其他场合他们根本不显示。我的网站也是ISO-8859-1。有没有人知道这个或工作的任何原因。

我听说过一些关于iconv的东西,但似乎并不想工作。 其他想法是创建一个str_replace脚本,但这听起来有点复杂,我不能得到所有的字符。

感谢您的帮助。 理查德

3 个答案:

答案 0 :(得分:2)

您如何使用iconv?在输出之前尝试这个:

$review['content'] = iconv('UTF-8', 'ISO-8859-1', $review['content']);

P.S。与“”问题无关,但您可能缺少数组键的引号 - 它应该是$review['content'],而不是$review[content]。对于使用$review数组的其他地方也是如此。

答案 1 :(得分:0)

您似乎以UTF-8发送输出,但将字符集指定为Latin-1。您的数据库连接上有正确的字符集吗?

MySQL查询SET NAMES latin1会将来自数据库连接的所有以下数据转换为ISO-8859-1(Latin1)。

答案 2 :(得分:0)

最后我想我刚进去并删除了它们。 理查德