都是乱码惹得祸

这几天在玩水煮鱼的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

One Response to “都是乱码惹得祸”

  1. Hassan Waltner

    You all, make my family so very proud of you, you do the job that we can’t do. You stand your ground giving you all over and over again. You are in my prayers always and will be till the day I die. Though you don’t know me nor I you, I thank you for all you have done and continue to do. God bless and be will you always. Prayers, love and Hugs. Dee

    [Reply]

Leave a Reply

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