Jythonの対話コンソールでエラーが発生する場合の対処

Jython2.5.1でコマンドプロンプトやターミナルでJythonの対話コンソールを開き、["aaa"+"bbb"]や[a = "abcd"]などを入力すると以下の様なエラーが発生すると思う。


LookupError: unknown encoding 'ms932'


これはJython2.5.0からあった問題だが2.5.1ではフィックス(回復させる,元に戻す)と言われていた。しかし2.5.1になっても解決していない...2.2.1では大丈夫だったけどね。2.5.2RC2はどうだろう確認はまだしてないな。


まずコマンドプロントをShift-JISで設定させてるのが原因かと思い、コマンドプロンプトUTF-8に変更しJythonを起動してみた。


chcp 65001
もちろん駄目でした。


次の記事でJythonの日本語入力の解決方法を書く予定ですが、実はその解決方法で今回のエラーも治ってしまうのですよ。ですがそのコーデックを手に入れるには少し面倒なので・・・。


という訳で今回は回避方法だけ記しておきます。



Jythonを実行する時にオプションを付けてUTF-8として実行します。

C:\jython -C utf-8

このように実行する事で【LookupError: unknown encoding 'ms932'】は発生しなくなります。


ただ日本語を出力させたりする事は出来ないと思います。私の環境では


C:\>jython
jython 2.5.1....
:
:
>>> print "こんにちわ"
・・・

となりますからね。


と以上が私のWindows環境でのお話でした。ちなみに私の環境のMacではターミナルからJythonコンソールを開き、何もオプションを付けなくてもエラーは発生しませんし、日本語入力も問題ないんだよね。もちろんEclipseで日本語出力するとエラーを吐きますが。とまあ、文字コードが原因というのが分かっていただけたと思います。


根本的な解決については次回の記事をご覧下さい。