概要: wine で Safari for windows を動かした際に日本語が文字化けしたのでそれを直す方法
昨日アフィリエイトサイトを作り直してる時に、
という流れで Safari for windows をインスコしたのち放置してたんですが、 今日なんとなくきちんと表示されるかなぁと思ってチェックしてみたら、 なんかあちこちのサイトで文字化け、いわゆる豆腐になってたので、 それを直したんですが、今回その作業方法を備忘録として記録してみます。
前提
まず前提として僕の環境を書いておくと、僕の環境では、あまり大きな声では言えませんが、
クリーンインスコした Windows XP からFonts
ディレクトリをぶっこぬいて、
wine のFonts
ディレクトリに放りこんであったりします。
で、さらに僕の環境では、クリーンインスコした Windows XP からフォントを引っこ抜くのに飽き足らず、 レジストリの FontLink の設定もエクスポートして使用していたりします。
要するに
- Windows XP のフォントが wine にインストールしてあり
- かつ Windows XP の FontLink の設定もインポートしてある
というのが僕の環境です。
豆腐化けの直し方
最初に書いておくと、wine でフォントが豆腐化けする場合には、
- 必要なフォントが入ってない
- フォントリンクが設定されてない
のどっちかっぽいです。
前者の場合では必要なフォントを入れることで、 後者の場合ではフォントリンクを設定することで、 それぞれフォントの文字化けを解決できます。
で、今回 Safari for windows on wine で文字化けした原因は、 先程の後者の例、 フォントリンクが設定されてない というのが原因だったので、 これを修正します。
で、まず最初に、どのフォントがフォントリンクさえれてないのかを調べるために、 wine で動かしたい Application を起動した状態で端末を開き
$ lsof | grep wine | grep ttf
という感じのコマンドを発行します。
lsof
は現在動いてるプロセスが、どのファイルを使用しているか、を調べるコマンドで、
その出力結果からgrep
を使って、wine が使っているであろうフォントファイルを引っこ抜きます。
で、僕の環境ではこんな感じの出力になりました。
nyarla-desktop% lsof | grep wine |grep ttf Safari.ex 14049 nyarla mem REG 8,1 171792 828423 /home/nyarla/.wine/drive_c/windows/Fonts/verdana.ttf Safari.ex 14049 nyarla mem REG 8,1 383804 828357 /home/nyarla/.wine/drive_c/windows/Fonts/tahoma.ttf Safari.ex 14049 nyarla mem REG 8,1 409280 828418 /home/nyarla/.wine/drive_c/windows/Fonts/times.ttf Safari.ex 14049 nyarla mem REG 8,1 398372 828419 /home/nyarla/.wine/drive_c/windows/Fonts/timesbd.ttf Safari.ex 14049 nyarla mem REG 8,1 118832 828266 /home/nyarla/.wine/drive_c/windows/Fonts/ariblk.ttf Safari.ex 14049 nyarla mem REG 8,1 352224 828265 /home/nyarla/.wine/drive_c/windows/Fonts/arialbd.ttf Safari.ex 14049 nyarla mem REG 8,1 137616 828426 /home/nyarla/.wine/drive_c/windows/Fonts/verdanab.ttf
で、これで wine 上で動いている Windows Application が使用しているフォントファイルの一覧が取得できるので、 これをどこかにメモって置きます。
んで、次に端末で、
$ regedit
という感じで、レジストリエディタを起動します。で、レジストリエディタが起動したら、
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
を開いて、先程メモっておいたフォントの フォント名をキーにして 、 複数文字列値 を作成します。 で、この フォント名をキーにして 作成したレジストリの値に、フォントリンクしたいフォントの設定を書き込みます。 まあこのあたりの設定は Google かなんかで、検索すれば出てくると思うので、詳細は省略します。
ちなみに前提で述べたとおり、僕の環境では Windows XP の設定を import してあったりしたので、 僕の環境では Windows XP から import した各 FontLink の設定値を、新しい FontLink も同じようになるように設定しました。
で、この設定を終えた後、もう一度豆腐化けしていた Windows Application を起動すると、 たぶんフォントの豆腐化けが直ってるかと思います。
以上で終了
まあざっとこんな感じかんじで Safari for Windows の文字化けを直しました。
まああんまりフォントが綺麗とは言いづらい感じの表示になってるような気がするんですが、 まあ僕のサイトがきちんと表示されるようになったんで、まあこれでよしとしてます><
あと、僕の wine 環境は、他人からすればあまり褒められた環境ではないので、 そこら辺割引いてこの記事を読むことをオススメします。
とまあ、こんな感じで、Safari for Windows の豆腐化けを解決したって話でした。