macでJythonの文字コードについての質問です
Javaを独学で齧った程度で、特にPythonはつい最近知ったばかりのため、質問の仕方が的を射ていないかもしれませんが、質問が足りていなければ、補足したり、試しますので、お答え頂けると嬉しく思います。
使用しているmacは
MacBookPro,13-inch, Early 2011
MacOS 10.7.1
使用してるIDEはEclipseです。
JavaとJythonでやりとりをする際の文字コードについての質問です。
JVMで動くゲームを作ろうと思いまして、一番変更の多い部分にJythonを使ってみたく、
http://www.jython.org/downloads.htmlより、Jython 2.5.2をダウンロードし、指示に従って順繰りにインストールをしました。
その後、Javaプロジェクトを作成し、「外部アーカイブの追加」より、インストールした際に出来た、jython.jarを追加し、
また、EclipseでPyDevを入手し、設定の「Interpreter - Jython」には、同様のjython.jarを通しました。
Eclipseの環境設定→ワークスペース、のテキスト・ファイル・エンコードはデフォルトの(SJIS)になっています。
この環境で、JythonがJavaとどのようにやり取りするのか、色々と試そうと思ったのですが、
スクリプトの文頭に#coding:Shift_JIS、また#coding:SJISなどと入れ、
#coding:Shift_JIS
print "あああ"
という風にして、javaから
PythonInterpreter pi = new PythonInterpreter();
pi.execfile("script/test.py");
と言った形で呼び出すと、
Exception in thread "main" LookupError: unknown encoding 'shift_jis'
といったエラーが出てしまいます。
#coding:Shift_jisの下りを入れなかった場合は
Exception in thread "main" SyntaxError: Non-ASCII character in file 'script/test.py', but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
になります。
ただ、Eclipseの実行をスクリプトだけに焦点をあてている場合は(分りづらい書き方かと思いますが、スクリプトのファイルを選択した状態で実行をするという感じの場合は)、問題なく実行されます。#coding:Shift_JISを書かなければ、SyntaxErrorになります。"SJIS"でも同じでした。
日本語を使わなければ、pi.execfileで読んだり、execで関数を実行したり、
pythonから整数型や英数字のみの文字列を、javaのクラス変数やインスタンス変数に代入して、それをjavaから確認したりすることは出来ます。
また、インストールしたJythonのフォルダのある、User/ユーザ名/jython2.5.2/jython(UNIX実行ファイル)
をダブルクリックして出るターミナル画面から、
>>> unicode("ああああ","Shift_jis")
と入力しても、
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
LookupError: unknown encoding 'shift_jis'
というエラーが出ます。
どうにかして日本語を、可能ならShift_JISで使っていきたいのですが、こういった開発環境にプラスαをしたこと自体初めてなため、
自力でどうすれば解決できるのかわからず、途方にくれています。
拙い質問ですが、解決方法をご教授頂けると、とても嬉しく思います。
お礼
詳しくありがとうございます。