JREが原因の字化けその後…2012-02-09

前回の記事ではCentOS6.0xでの記事だったのですが、先日いじりすぎて再起不能となってしまい昨日6.2をインストールしました。で早速環境を再構築していたらXMLmindが初期状態で日本語入力できるでないか…と思ったら”権”などいろいろ字化けしてしまう文字がある。何か変更が入ってる?

/usr/share/fonts/を見てみたらIPAフォントがあるでないかい!6.0でもすでにあったのかな?当時あわててたので確認しなかったのですが、実際どうだったんでしょう?

デフォルトで読み込むfontconfig.RedHat.6では、VL_Gothicを指定しているようですが、VL_Gothic自体はあるし、この部分をIPAにしてもうまく直りません。結果オーライのontconfig.properties.srcで今回も使うことにします。

以下がCentOS6.2の環境で変更したfontconfig.properties.srcの内容。(この下の記事も要併読)


#filename.Sazanami_Gothic=/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
filename.Sazanami_Gothic=/usr/share/fonts/ipa-gothic/ipag.ttf
#filename.Sazanami_Mincho=/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
filename.Sazanami_Mincho=/usr/share/fonts/ipa-mincho/ipam.ttf

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