修改mozilla thunderbird,以便访问中文新闻组

类别:软件工程 点击:0 评论:0 推荐:
从2003年的时候开始试着使用mozilla suit,包括浏览器(firefox前身)和邮件客户端(thunderbird前身),但是都因为功能方面的问题只是浅尝辄止:
1.虽然喜欢标签式浏览,但在访问很多网页时的显示效果都不好,只有作罢
2.thunderbird在显示中文新闻组的时候,组名是乱码,而且无法显示邮件内容

关于thunderbird对中文新闻组的支持问题,向mozilla反映后,得到的答复是这是一个已知,还没有修复的问题。

到了2005,因为firefox的成功,现在基本已经把firefox作为默认的浏览器使用,这时就想起了那个邮件客户端:现在独立出来的thunderbird.

让人失望的是,那个对中文新闻组不支持的问题依然存在!
据网上有些人说这是因为newsfan, webking等没有按照新闻组标准实现,在传送新闻组名的时候使用的是GBK编码,有人已经向mozilla提供了patch,但mozilla没有采纳。

正好前段时间比较闲,如果只是编码的问题,那么既然mozilla是开放源码的,那么拿来修改一下应该就可以解决问题了(这就是开放源码的好处吧 :) )

在修改thunderbird的源码过程中,发现问题并不是单方面的newsfan, webking没有按照新闻组标准实现,其实TB本身设计实现时对双字节编码(unicode,GBK)支持也不好,在一些函数接口中,明确使用char * 作为输入,而且不指定缓冲区长度,其实就是要求以0结尾的字符串,而在内部的转换中并没有把这些输入作为utf8编码处理(在这种情况下,作为变长编码处理是唯一的办法了)。

现在对TB支持newsfan, webking等新闻组的修改已经基本完成,下面是一些基本情况
1.在英文1.0.2的基础上修改
2.支持newsfan, webking(其他的没测试过)的访问,可订阅,阅读,发邮件等,不会有乱码.
3.仍然存在的问题
(1)订阅时不支持使用中文作为关键字过滤
(2)在向中文新闻组投递邮件时,编辑框中作为地址的中文新闻组名显示为乱码(但不影响邮件的正常发送)
4.修改是以hacking的方式完成的,这样达到目的需要的工作量比较小,而且可以把修改所产生的影响限定在一个范围内,使得对TB的修改不会影响到其总体的质量。但这不是一个可发展的方法(not a engineer way),会降低整个项目代码的可读性和可维护性。

因为TB的新闻组设计上本身对英文以外的其他语言支持不好(设计和历史问题,如前述),上面的问题修改需要比较多的改动(重构),需要花很多的时间和精力,现在还下不了决心.希望能够申请到能帮助自己继续下去的资源,继续对TB的完善。

可以说现在修改的这个版本自己用用还是可以的。TB的好处就是可以跨平台,而且收发邮件,访问新闻组,rss阅读,功能齐全。
有需要使用TB访问newsfan, webking的朋友可与我联系, [email protected]


本文地址:http://com.8s8s.com/it/it31806.htm