JREが原因だったとは…

以前EclipseにERMasterをインストールしたとき、テストデータ作成画面のコンテキストメニューやらなにやらが、あちこちが字化けしてしまって使い物にならなかった。プルダウンメニューなんかも不正な表示をしてたのでCentOSの環境では使用をあきらめERMasterだけWindowsで使っていた。

で、今度はドキュメント作成のためのXMLmindをインストールしたら、入力する日本語が字化けする。文字が四角で表示されてERMasterと症状が似ているので、検索したらJRE(Java実行環境)の日本語フォントの設定が悪かったみたい。いずれのソフトも日本語化しないで使用してたので全く見当もつかなかった。

/usr/lib/jvm/jre/lib/にはfontconfig.ほにゃららがたくさんある。その中で一番基本的なネーミングのfontconfig.properties.srcファイルを開く。いろいろごにょごにょ記述してある。例えば dialog.plain.japanese-x0208=Sazanami Gothic のように日本語向け設定のような箇所にSazanami Gothicがある。で、ずっと下の方を見ると filename.Sazanami_Gothic=/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf のパスの指定が…。

CentOS6自体にsazanamiフォントが無いようだし、/usr/share/fonts/をみてもどこに日本語フォントがあるのかわからない。なのでIPAフォントをダウンロードした。

/usr/share/fonts/にjapanese/TrueType/ ディレクトリを作ってIPAフォントのipag.ttfとipam.ttfをコピーした。JREのfontconfigファイルはいちいち全部修正するのが面倒くさいのでfilenameを指定しているsazanami-gothicやsazanami-minchoの部分をそれぞれipag.ttf、ipam.ttfに置き換えた。下記


#filename.Sazanami_Gothic=/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf 
filename.Sazanami_Gothic=/usr/share/fonts/japanese/TrueType/ipag.ttf
#filename.Sazanami_Mincho=/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
filename.Sazanami_Mincho=/usr/share/fonts/japanese/TrueType/ipam.ttf
.srcの拡張子を削除してfontconfig.propertiesにして、他のfontconfigファイルはすべて削除(するのはちょっと怖いのでhomeディレクトリに移動しておいた)する。これでばっちりXMLmindで日本語が入力できるようになりました。めでたし!ついでにERMasterもちゃんと使えるようになった。

ちなみにJREのlibにfonts/fallbackディレクトリを作って日本語フォントのシンボリックリンクを置くという方法をあちこちで見たのですがうまくいきませんでした。

参考サイト:http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/intl/fontconfig.html