2006年5月11日

彻底解决Komodo中文显示存储问题

最近几个月一直在学习Python编程,但是如何选择一个好的开发环境还真是意见麻烦的事情。换了好多个东东,最终俺选择了Komodo。网上对Komodo的介绍如下:


  近日,业界著名的开放源代码编程工具开发商ActiveState公司推出了首个第三方Mozilla应用软件Komodo 1.0。Komodo是第一个基于Mozilla应用程序框架底层开发的Perl和Python集成开发环境。全功能, 多语言支持的Komodo 1.0将进一步提高开发人员的工作效率,其特征包括提供完整的联机帮助和一个交互式的远程调试器。此外,Komodo也包括一个独特,正规的表达式工具箱, 极大地简化了脚本语言的开发。
  
  据ActiveState公司的创始人及CEO迪克•哈德特(Dick Hardt)介绍,Komodo是业界第一个商业级、跨平台的Perl和Python集成开发环境。Mozilla面向框架的组件技术将允许开发人员在今后很容易地为Komodo 1.0添加更多的语言和特征支持。

  Komodo的主要特征:

    正规的表达式工具箱
    自动补全和请求提示
    完整的联机帮助  
    智能的代码编辑器
    交互式的远程调试
    代码合并功能
    可定制和可扩展的可视源代码

  Mozilla是一个理想、跨平台的Web开发环境,而集成Perl、Python 以及Mozilla精华技术的Komodo将为Perl、Python以及JavaScript开发者提供一个非常完美的网服务开发解决方案。ActiveState公司发布了第一个基于Mozilla组件技术的应用程序,这将成为开放源代码运动中的一件具有划时代意义的事件,更进一步证实了Mozilla比下一代Netscape浏览器有更多的优越行。更重要地, 它提供与语言喜欢 Perl 和到精华的超过黑客可接近的大蟒的开放源代码做跨平台的开发的使网能够的 IDE 。”它提供了一个高效率、跨平台网络编程环境,促使更多的普通用户转向基于开放源代码语言(像Perl和Python )的网络编程。

  包含ASPN Komodo的Komodo 1.0售价为295美元,ASPN Komodo是为Komodo IDE提供的年度订阅费用,包括所有的升级,技术的参考书,样品代码,以及在线帮助等。



用这个软件,俺叶有些自己的心得体会。它的好处,不用多说。不足之处,如下几点:
1。设置断点程序中断的时候不能用鼠标在代码编辑窗口中直接查看变量的值。这一点在Visual Studio中可以实现。
2。代码的只能提示功能欠缺一些。刚定义的变量在随后敲入的时候不会自动提示。
3。中文不能很好的显示
4。修订中文显示后不能保存文件,一旦保存,相应的中文字符都会编程问号

仔细分析上面的四条后,我发现第3条和第4条我非常难以接受。一段时间曾经用汉字对应的双字节十六进制编码来代替,这使得俺编程的时候感觉非常的不爽。在实验室Gold师兄的帮助下,中文能够很好的显示了。具体的操作方法如下:



在Mozilla\components目录下面找到koEncodingServices.py文件,用文本编辑器打开在第80行插入
('cp936', 'Chinese(CP-936/GB2312)', 'CP936', '', 1,'cp936'),
('GB2312', 'Chinese(GB-2312)', 'GB2312', '', 1,'GB2312'),
('GBK', 'Chinese(GBK)', 'GBK', '', 1,'GBK'),
('GB18030', 'Chinese(GB18030)', 'GB18030', '', 1,'GB18030'),
上述四行当中的后三行之对3.5版本有效,3.5版本使用的是FireFox的引擎,之前的版本使用的是Mozilla的引擎所以不能完全兼容。如果你使用的是3.5以前的版本只插入
('cp936', 'Chinese(CP-936/GB2312)', 'CP936', '', 1,'cp936'),
就可以了。




采用这种方法后,编写程序的时候可以在文件中敲入中文了。但是在运行含有中文字符的程序的时候总会有下面的这段提示:


C:\Program Files\ActiveState Komodo 3.5\lib\support\dbgp\pythonlib\dbgp\client.py:590: DeprecationWarning: Non-ASCII character '\xb2' in file E:\PythonProgramming\wxPython in Action Practise\Test.py on line 2, but no encoding declared; seehttp://www.python.org/peps/pep-0263.html for details
execfile(file, globals, locals)



打开提示的网页,俺找到了这个提示的作用,需要在程序的首行加入文件编码格式的强制定义,一个测试程序如下:


# -*- coding: gb2312 -*-
#测试
print "测试"



现在运行程序就没有任何的问题了。

总结一下上面的陈述:
1。解决中文显示问题可以修改Komodo的配置文件,加入几行说明。
2。解决中文运行问题可以在程序首行加入编码格式的强制

没有评论: