Win 7 で、Sublime_text2 (ST2) で JavaScript スクリプト (rhino) を実行しようとしています。ST2 は比較的新しく、Python に習熟していないため、エンコードの問題に遭遇しました。ここに私の「プラグイン」があります:
import sublime
import sublime_plugin
from urllib import pathname2url(*)
class RhinoCommand(sublime_plugin.TextCommand):
def run(self, edit):
script = pathname2url(self.view.file_name())
self.view.window().run_command("exec", {"cmd": ["java", "-cp", ".;/D:/Javascript/Rhino/rhino-1.7R4/js.jar", "org.mozilla.javascript.tools.shell.Main", "-version", "180", "-require", "-modules", "/path/to/a/module" -f", script]})
キー バインドが追加されます。
{ "keys": ["ctrl+j"], "command": "rhino" }
(*) このインポートは、java.net.URISyntaxException を防ぐために追加されたもので、明らかに問題ありませんでした。
ただし、場合によっては、一部の例外により、詳細情報なしでこの出力が生成されます
[Decode error - output not utf-8]
この動作を変更するにはどうすればよいですか? で試しました
def run(self, edit, encoding="cp1252"): #or cp850 (as windows command "chcp" says 850 on my box) with no effect.
コマンドの代わりにビルドを使用してみましたが、$file を pathname2url でラップする方法がわかりません。私の質問は、すべての場合に [Decode error - output not utf-8] を取り除く方法です。