3

我在 Jython 2.5.1 中编写了一个程序,它在我的 Windows 7 机器上运行良好,但在日本机器上它抛出一个异常,说“未知编码'ms932'”

我发现codecs.java是唯一打印未知编码“xyz”消息的模块

此文件加载aliases.py确实包含

# cp932 codec
'932'                : 'cp932',
'ms932'              : 'cp932',
'mskanji'            : 'cp932',
'ms_kanji'           : 'cp932',

文件 cp932.py 包含

 import _codecs_jp, codecs

但是.. _codecs_jp 不存在正如本页中所讨论的那样 有没有人知道从这里去哪里?

http://web.archiveorange.com/archive/v/8tc1Zc2rV3qiUcy9zPlA

4

3 回答 3

3

日语博主和其他人不推荐以下内容,它也适用于我:

使用参数调用 jython -C utf-8

请注意,显然仍然存在一些限制,例如无法访问日文路径名或将日文打印到控制台。我还没有遇到过这些,所以我无法评论解决方法。

于 2012-10-10T03:33:54.350 回答
1

你应该使用sys.setdefaultencoding

sys.setdefaultencoding(name)

或者只是把

# -*- coding: utf-8 -*-

在脚本的开头。

设置 Unicode 实现使用的当前默认字符串编码。如果 name 不匹配任何可用的编码,则引发 LookupError。此功能仅供站点模块实现使用,并在需要时由 sitecustomize 使用。一旦被站点模块使用,它就会从 sys 模块的命名空间中删除。

http://docs.python.org/library/sys.html

于 2012-08-28T12:02:28.053 回答
0

这是 Jython 错误问题 #1066:

http://bugs.jython.org/issue1066

于 2016-07-27T09:16:33.213 回答