カラクリスタ

「輝かしい青春」なんて失かった人のブログ

Safari on wineでの文字化けを直す方法 ( wineで豆腐文字化けを直す方法 )

概要: wine で Safari for windows を動かした際に日本語が文字化けしたのでそれを直す方法


昨日アフィリエイトサイトを作り直してる時に、

  1. Safari できちんと表示されるか確認したい!
  2. wine で動かないかな……(ワクワク)
  3. WineHQ ->Platinum
  4. よっしゃ、さっそくインスコ

という流れで Safari for windowsインスコしたのち放置してたんですが、 今日なんとなくきちんと表示されるかなぁと思ってチェックしてみたら、 なんかあちこちのサイトで文字化け、いわゆる豆腐になってたので、 それを直したんですが、今回その作業方法を備忘録として記録してみます。

前提

まず前提として僕の環境を書いておくと、僕の環境では、あまり大きな声では言えませんが、 クリーンインスコした Windows XP からFontsディレクトリをぶっこぬいて、 wine のFontsディレクトリに放りこんであったりします。

で、さらに僕の環境では、クリーンインスコした Windows XP からフォントを引っこ抜くのに飽き足らず、 レジストリの FontLink の設定もエクスポートして使用していたりします。

要するに

  1. Windows XP のフォントが wine にインストールしてあり
  2. かつ Windows XP の FontLink の設定もインポートしてある

というのが僕の環境です。

豆腐化けの直し方

最初に書いておくと、wine でフォントが豆腐化けする場合には、

  1. 必要なフォントが入ってない
  2. フォントリンクが設定されてない

のどっちかっぽいです。

前者の場合では必要なフォントを入れることで、 後者の場合ではフォントリンクを設定することで、 それぞれフォントの文字化けを解決できます。

で、今回 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 の豆腐化けを解決したって話でした。

FIXME