我爱水煮鱼 » 开源 » 如何处理 Feed 中特殊字符

如何处理 Feed 中特殊字符

今天 Dreamcolor 告诉我火星在 WordPress Dashboard 后台不更新了。我到火星页面看了下,都有更新啊。然后查看了下生成的聚合 Feed,发现只显示前面两条,感觉应该是聚合的 Feed 中出现了特殊字符的问题,然后去验证下 Feed,发现真的是特殊字符的问题。

火星聚合的 Feed 中每个 item 的 title 是采用“博客的名字 : 标题”这样的形式,以便能够在 WordPress Dashboard 后台正确显示。仔细查了下,这问题就出在其中有的博客名字中有特殊字符。这个博客是:成为查理·唐,它中的那一点(·)被转义成 ·。由于 middot 没有在 XML 预先定义,所以就会出现这样的错误:Undefined named entity: middot。可以有两种没法处理这个问题,Feed Validator 推荐的方法是创建一个 DTD 文件预先定义它。我选择的另外的方法是使用函数 html_entity_decode 把特殊字符转换回去。代码如下:

html_entity_decode($title,ENT_COMPAT,'UTF-8');

标签:

分享到:

请选择你看完该文章的感受:

不错 超赞 无聊 扯谈 不解 路过
  1. 原来是这样,我说怎么那么多天没有更新。
    顺便说一下,你的主页在opera下面破相了。