2012-08-28 55 views
3

上「未知enocoding MS932」我寫了一首歌的Jython 2.5.1一個程序,我的Windows 7機器上工作正常,但日本的機器上它拋出一個異常說「未知的編碼‘MS932’」Jython的日本系統

我發現codecs.java是打印未知編碼 'XYZ'消息的唯一模塊

此文件加載aliases.py其確實包含

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

文件cp932.py包含

import _codecs_jp, codecs 

但是... _codecs_jp確實不存在as is also discussed in this page 有沒有人有一個線索從哪裏走?

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

回答

1

你應該使用sys.setdefaultencoding

sys.setdefaultencoding(name) 

或只是把

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

在腳本的頭。

設置Unicode實現使用的當前默認字符串編碼。如果名稱與任何可用的編碼不匹配,則會引發LookupError。此功能僅供站點模塊實施以及在需要時由sitecustomize使用。一旦被站點模塊使用,它就會從sys模塊的名稱空間中刪除。

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

+0

我都嘗試,但這並沒有改變什麼? #在第一行。 和import.sys之後的sys.setdefaultencoding。 但後來它說systemstate沒有屬性'setdefaultencoding'.. 看起來像別的東西已經執行它。 – Houtman

+0

http://stackoverflow.com/questions/2276200/changing-default-encoding-of-python –

+0

我得出結論,問題出在Jython的其他地方,所以我完全修改了這個問題。 – Houtman

3

日語博客和諸如此類的東西推薦以下,和它的作品對我來說還有:

調用的Jython的說法-C utf-8

請注意,顯然還存在一些限制,例如無法訪問日語路徑名或將日語打印到控制檯。我還沒有遇到這些問題,所以我無法對解決方法進行評論。