Jython小问题-字符编码

本文详细阐述了在使用Jython过程中遇到的编码问题及其解决方案,包括修改CMD窗口编码格式、设置Jython控制台编码等步骤,帮助开发者顺利解决安装问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WebLogic/WebSphere监控中常用到Jython,就想下一个学学,听说简单易用,结果刚开头就碰到问题了。具体见下:

E:\TEMP>jython -i
Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06)
[IBM J9 VM (IBM Corporation)] on java1.6.0
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hello"
...
...
LookupError: unknown encoding 'ms936'
 
E:\TEMP>jython -i
Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06)
[IBM J9 VM (IBM Corporation)] on java1.6.0
Type "help", "copyright", "credits" or "license" for more information.
>>> if 1:
LookupError: unknown encoding 'ms936'

 两条很简单的命令:print没有正常返回;if命令直接出错退出Jython提示符了,怀疑Jython安装有问题。问问有经验的人,原来是本机字符和安装程序字符不一致导致。自学技术最怕这种属于知不知道范畴的东东了,瞎捉摸瞎搜索,最费时间了。先说解决方法吧:

E:\TEMP>chcp 437
 
Active code page: 437
 
E:\TEMP>jython -i
Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06)
[IBM J9 VM (IBM Corporation)] on java1.6.0
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hello"
hello
>>> quit()

 延伸阅读:

what-encoding-code-page-is-cmd-exe-using

修改windows的CMD窗口输出编码格式为UTF-8

 

错误1:LookupError: unknown encoding 'gbk'
现象:一条简单的print没有正常返回,报上述错误,原来是本机字符和安装程序字符不一致导致。
解决:
>>> #_*_ coding: cp850
在jython2.5.3\registry 文件中,有这种配置,取消注释,就是设置控制台编码
# Setting this to a valid codec name will cause the console to use a different encoding when reading commands from the console.
#python.console.encoding = cp850
扩展:获取当前系统支持的编码列表
>>> import encodings
>>> encodings.aliases.aliases  列出所有支持编码集合
>>> for key in encodings.aliases.aliases.keys(): print "%-25s%-25s"%(key,encodings.aliases.aliases[key]) 分两
其中有这么几条:
936                      gbk
utf8                     utf_8
850                      cp850
 
 http://bbs.youkuaiyun.com/topics/390035497
 
#!/usr/bin/env python 
# -*- coding: gbk -*-
提示错误:LookupError: unknown encoding 'gbk'
python是可以的,但是jython提示错误,这如何解决gbk 问题呢?
 
在网上搜搜,两三年前就有人问这个问题了,从没有人回答.

从代码看,jython的gbk.py是从cpython拿来的,但它用到了一个c模块_codec_cn,在jython中没有相应的实现,所以jython中加载gbk.py会出错,导致lookup error.

用utf-8吧.
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值