2014/03/18

Emacs24/Leiningenの文字化け対策のメモ

Windows8で, emacs24上のshellで作業をしようとしたのですが,

症状 : "lein run"を実行すると, 文字化けする.

ので, その対策のメモ. (    部は要約)

とりあえず, Windowsのコマンドプロンプトで実行してみても同じように文字化けするので,
そこから修正することに.

調べて見ると, このページ(日曜プログラミングより)を見つけました.
当然ながら, コマンドプロンプト側とjava側のエンコードが一致していないので,
文字化けしているようです.
このページを参考に, UTF-8で統一することに.

上記ページでは, JAVA_TOOL_OPTIONSとなっていますが,
環境変数_JAVA_OPTIONS=-Dfile.encoding=UTF-8を追加しました. (*1)

これでコマンドプロンプト上では文字化けしなくなったので,
最後に, この設定をemacsのshellに流用できればOKです.

起動時にコードページが65001となるようにしたいので,
このページ(Data Mattersより)を参考に,
emacs上のshell(コマンドプロンプト)のコードページを設定しました.
.emacsと同じ場所に.emacs_shellnameファイルを作成し, 次のように入力 (*2)

chcp 65001

これで, emacsのshellのデフォルトのコードページがUTF-8になったので,

...\helloj>lein run
lein run
こんにちわ, 世界!
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8

と出力されて, 文字化けが修正できました.
Picked up _JAVA_OPTIONSが二度出力されるのはなぜなのでしょうか.

*1 : JAVA_TOOL_OPTIONSとかの話
*2 : chcpの参考