都是乱码惹得祸

这几天在玩水煮鱼的Dashboard Chinese 插件时想看看他火星计划的效果,却突然发现自己的Feed在哪儿有点问题。原来还是可以看见文章的,但是前两天却突然不见了。经过水煮鱼的证实,Dashboard Chinese 插件是没有问题的,他那边的讯息是:火星不能够PING我所提供的RSS Feed服务器。所以,问题的所在就应该是我博客生成的RSS了。正巧自己刚刚升级到WordPress MU 1.3.3,想当然是升级产生的问题。

首先按照查找升级带来问题的常规程序来:卸掉所有的插件,问题没有解决;再降级博客程序(重新上传WordPress MU 1.3)以免代码升级带来UTF-8解析的毛病,还是老样子。折腾了两天(过年吗,就只有断断续续地 trouble shooting),仍然没有解决问题。看来不是升级带来的问题,对不起,各位WP核心源码和插件开发团队的哥们,错怪你们了。

好了,就来看看RSS Feed本身吧。由于自己目前使用FeedBurner来做RSS的种子发布机,使得问题更加的“复杂”。表现的症状是,在我的浏览器上直接调http://lichao.net/weblog/feed 是一点问题也咩有,但是但自己敲 http://feeds.feedburner.com/lichaonetweblog 时,出来是一片乱码,文字全变成 ????问号了。而且在feedburner更新My Feeds讯息时,没有成功,出来了一个错误信息如下:

The URL you entered does not appear to be a valid feed. We encountered the following problem: Error on line 42: Invalid byte 3 of 3-byte UTF-8 sequence.

大致结论是由于本博客的某些文章里的字符,在产生RSS时给Feedburner带来了不可识别的错误。有了这个,总算使自己的纠错行动奠定了一个大致的正确方向。下面就是我成功解决问题的过程和使用的工具,因为自己走了些弯路,发在这希望给大家在遇到同类问题时有所帮助。

 

由于是最近发生的,肯定从最后文章入手。而且知道毛病在于不正确的字符问题,自然要从“文章是否使用了Word等编辑器而产生了恶劣的怪符”和“是否使用了Javascript”开始。

  1. 去掉 Google Adsense 的代码,虽然不是我这里的主要问题,但是没有Javascript还是方便下一步的纠错。
  2. 仔细检查文章内容,发现了文章的链接 title 里的中文既然产生了一两个莫名其妙的怪字符。不知道根本原因,可能是跟所使用的虚拟主机有关,而且再加上在 title=”” 里使用的引号是半角引号。不管怎么样,赶快删掉先。或者用英文来代替。

改正上述两个问题,RSS Feed就基本恢复正常了。

另外,推荐使用 http://www.feedburner.com/fb/a/troubleshoot?id=1315512 里推荐的几个步骤来进行 troube-shooting。今天使用的 XML Validate 网站是http://feedvalidator.org/check.cgi?url=http%3a%2f%2flichao.net%2fweblog%2ffeed,下面就是它发现的问题:

xml_invalid_weblog01

好了,再会了各位乱码 ???????? 问号。希望再也不要见到你,只在这发个原来截图做个历史的“见证”吧。

xml_invalid_weblog02

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.