天天看点

Jython unknown encoding问题

http://blog.sina.com.cn/s/blog_62f28d560100xqam.html

Jython在Windows XP中新装之后,当进入Jython console之后,会出现编码异常:LookupError: unknown encoding 'gbk',异常过程如下,e.g.

   D:\Java\jython2.5.2>jython

   >>> print "hello world"

   ....

   此时,当我再输入 '\n'之后,console中会出现以下异常:

    LookupError: unknown encoding 'gbk'.

   这个异常在英文版的Windows XP中不会出现,由此可以估计是系统的默认编码的问题导致的。以下提供两个解决方案:

   1)更改JVM启动时的默认字符编码:

   启动jython的时候使用option “ -Dfile.encoding=UTF8”,这样当进入jython console之后就会以UTF8作为编码,e.g.

    D:\Java\jython2.5.2>jython -Dfile.encoding=UTF8

   2)更改jython console启动时的默认编码:

   启动jython的时候使用option “-Dpython.console.encoding=UTF8”,e.g.

    D:\Java\jython2.5.2>jython -Dpython.console.encoding=UTF8

   或者我们可以在jython的registry文件中加入如下关于字符编码的定义,例如在飞少的例子中,registry文件位于:D:\Java\jython2.5.2\registry,打开文件,找到设置编码的一行反注释,并将字符集指定为UTF8即可,e.g.

    python.console.encoding = UTF8

另 http://www.cnblogs.com/alexjin/archive/2011/08/01/2123620.html 看到的方法:

首先打开你的Jython的registry文件(位置一般在C:\Documents and Settings\Administrator\.netbeans\7.0\jython-2.5.1,根据你安装所在的目录.

用记事本打开registry文件,找#python.console.encoding这个内容,这只有一次,看它后面有=XXXXX的,我的文件是

#python.console.encoding = cp850
           

所以在代码中的gbk改成cp850问题就解决了,你们的等号后面是什么内容,就改什么内容。我认为应该是这样的。至于什么原因,我也说不清,嘿嘿。。。。

代码:

#!/usr/bin/python
# -*- coding: cp850 -*-