如何处理 Feed 中特殊字符
May 8th, 2008 at 12:43pm 雪山飞猪 浏览: 257

今天 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');
作者:雪山飞猪
原文链接:如何处理 Feed 中特殊字符
我爱水煮鱼版权所有,转载时必须以链接形式注明作者和原始出处及本声明。



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