如何处理 Feed 中特殊字符
May 8th, 2008 Denis
今天 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');
作者:Denis
原文链接:如何处理 Feed 中特殊字符





1. 胖逗逗 | May 8, 2008 at 7:18 pm | #
我学学
2. Dreamcolor | May 8, 2008 at 8:08 pm | #
原来是介么回事哦!嘎嘎……
3. Dickey | May 8, 2008 at 9:16 pm | #
这招收藏备用
4. 雀巢 | May 8, 2008 at 9:52 pm | #
这个比较专业
5. tsian | May 8, 2008 at 11:41 pm | #
我又来啦!
6. Denis | May 9, 2008 at 12:44 am | #
严重不欢迎!
7. tsian | May 9, 2008 at 8:13 am | #
-_-~
难道又要我竖一根勃起的达摩克利斯剑么?
8. tomdbtel | May 9, 2008 at 9:26 am | #
还是不知道啥意思~~||
9. Dickey | May 10, 2008 at 12:11 am | #
比较少见的现象,今天木有新日志。
10. Crazy Loong | May 10, 2008 at 3:47 pm | #
其实完全可以使用CDDATA,更简单
11. Denis | May 10, 2008 at 5:37 pm | #
title 也可以用 CDCATA?
12. Crazy Loong | May 10, 2008 at 9:06 pm | #
有区别么?
13. Denis | May 10, 2008 at 9:24 pm | #
我记得 title 用了 CDCATA 不能通过 Feed 验证,FeedSky 什么的也不能解析。
14. 山河 | May 10, 2008 at 4:57 pm | #
不是很明白
feed 一直是我想要的功能
15. Charles | May 11, 2008 at 11:41 am | #
原来是这样,我说怎么那么多天没有更新。
顺便说一下,你的主页在opera下面破相了。