読者です 読者をやめる 読者になる 読者になる

しおしお

IntelliJのあれやこれや

MacとIntelliJの組み合わせで日本語文字化けに悩まされた件。

文字化けの詳細は、下のリンク先のチケットを参照してください。
A Japanese argument is garbled with the Java application of MacOS. : IDEA-90778

この問題を回避するためにまず行ったのが、IDEA_HOME/Contents/Info.plistのVMOptionsに、「-Dfile.encoding」を足してあげる事。とりあえず、プロジェクト内のファイルは全てutf-8だしIDEの設定もutf-8なので、file.encodingにもutf-8を指定してみた。
これで問題なく動くと思ったのに、普通に文字化けしたままに・・・。
ここから色々試していく中で、わかったことがターミナルから起動するとOKだけどDockから起動するとNGだということ。

なんとなく、LANG環境変数が(JVMのデフォルトエンコーディングはLANG環境変数を元に決まるから)悪さをしてるのかなと思うも、Mac初心者の為Dockから起動した場合のLANGがどうなるかよくわからず。

色々調べてみると、Dockから起動した場合のLANG設定は「environment.plist」に剃る必要が有ることを下のサイトで知ることに。
passingloop • Dock や Finder から起動されるアプリケーションの環境変数を設定する方法

これだ!!と思いテンション高めに「~/.MacOSX/environment.plist」に以下の内容を設定するも、文字化けは解消せず・・・。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>LANG</key>
    <string>ja_JP.UTF-8</string>
</dict>
</plist>

困ったときは再起動な流れで再起動してみるおやっぱりダメ。
そこで、自分でもなんでこんな設定をしたのかわかんないんだけど、LANG設定を「ja_JP.SJIS」に変更してPC再起動したら文字化けがなおった!!!

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>LANG</key>
    <string>ja_JP.SJIS</string>
</dict>
</plist>

とりあえず、この設定だと実行対象のプロジェクト内のファイルのエンコーディングが何であろうと文字化け解消するっぽいです。Shift_JISUTF-8とGBKで試しましたが文字化けはしませんでした。
ちなみに、Info.plistへの「file.encoding」の設定はなくても大丈夫みたいです。

結論!!

  • environment.plistにLANG環境変数ja_JP.SJISで追加する
  • Info.plistはいじらなくてもOK

理由が全くわかってないですが、私の環境では文字化け解消することができました。

おわり