北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

OS X 10.5.XでjKaiUIが文字化けする問題の解決

モンハンしたかったので頑張って調べました(ぉ。

OS X 10.5.XにKaid Commanderをインストールして、jKaiUIを使うと文字化けするっぽいです。OS X 10.4以前だと大丈夫です。

解決方法

Kaid Commander.app/Contents/Resources/GUI/jKaiUI.app/Contents/Info.plist に以下のパッチ当てて下さい。

--- Info.plist.orig     2007-04-05 05:27:26.000000000 +0900
+++ Info.plist  2008-05-23 00:11:01.000000000 +0900
@@ -24,6 +24,11 @@
        <dict>
                <key>MainClass</key>
                <string>pt.jkaiui.JKaiUI</string>
+               <key>Properties</key>
+                       <dict>
+                       <key>file.encoding</key>
+                       <string>Shift_JIS</string>
+                       </dict>
                <key>JVMVersion</key>
                <string>1.5*</string>
                <key>ClassPath</key>

文字化ける理由

以下の検証コードを実行するとわかります。

import java.nio.charset.Charset;
class Test{
    static public void main(String[] args){
        System.out.println(Charset.defaultCharset());
    }
}

10.5ではUTF-8、10.4以前ではShift_JISが返ってくるはずです。つまり、デフォルトのキャラセットが変わっていたと言うことですね。

直し方を見つけるまでの格闘

javaの起動オプションで、デフォルトのcharsetを変えることができます。-Dfile.encoding=Shift_JIS、を渡すだけです。まあ簡単。しかし、この方法で、

java -Dfile.encoding=Shift_JIS -jar 'Kaid Commander.app/Contents/Resources/GUI/jKaiUI.app/Contents/Resources/Java/jKaiUI.jar'

と起動しましたが、これだと動作が遅過ぎてまったく使い物になりませんでした。なんでだ?? 本家の方はJavaApplicationStubみたいなものを使って起動してるみたいです。これが速さの原因?? この辺全くわかりません。まあでも、悩んでも仕方がないので、 JavaApplicationStub について調べたところInfo.plistでjavaの起動オプションが調整できそうってのを見つけました。と言うことで、冒頭の解決方法に至ります。