2013/02/03

Hulu を Ubuntu のブラウザで見ると字幕が文字化け

昨日に続いて、文字化けネタです。

2015/7/11 追記
Hulu が使用するフォントが MS ゴシック から AR PL UMing CN に変わったようです。
ご注意ください。
穀風: Hulu の文字化けを直す on Ubuntu 14.04

私がメインで使用しているマシンの OS は Ubuntu 12.04 なのですが、その Chrome や Firefox で Hulu を見ると、字幕が文字化けしてしまうのです。

解決方法は提示されているが…

他にも同じ問題で悩んでいる方はいるようで、Ubuntu 日本語フォーラムでは中国語のフォントを置き換えることで日本語を表示できるようにする方法が紹介されています。

私もこの方法で字幕を表示できるようにしていたのですが、昨日からまた文字化けが発生するようになってしまいました。
というのも、この方法はフォントキャッシュを再生成するとダメになってしまうのです。
昨日はフォント周りをいろいろいじったので…

というわけで、別の方法を探ってみることに。
いろいろ試してみたのですが、最終的には MS Gothic という名前を持つ日本語フォントを作成すれば良いという結論に達しました。
以下、その方法です。

FontForge をインストールする

フォント情報を編集できるソフトウェアなら何でも良いのですが、今回はFontForgeを使用することにしました。
インストールは apt-get で出来ます。
$ sudo apt-get install fontforge

日本語フォントの family (フォント名)を変更する

まず、Hulu で使用したい日本語フォントをコピーして、FontForgeで編集します。
今回は TakaoGothic を使用しました。
日本語が含まれていればどんなフォントでも良いはずですが、等幅フォントを選ばないと悲しいことになります。
$ mkdir ~/tmp
$ cp /usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf ~/tmp
$ fontforge ~/tmp/TakaoGothic.ttf &

Element → Font info... → TTF Names
編集前
English の Family を MS Gothic
Japanese の Family を MS ゴシック
に変更します。MS ゴシックのMSは全角です
赤字の部分は一度、
右クリック → Detach from Postscript Names
を行うと編集可能になります。
編集後

フォント出力

File → Generate Fonts...

フォントタイプを TrueType に、フォント名は msGothicFake.ttf にしてみました。
Save を押すとフォントの書き出しが始まります。
今回、以下のようなエラーが表示されてしまいましたが、Save を選択することでファイルの出力は無事終了しました。

フォントを有効にする

生成したフォントは ~/.fonts/ ディレクトリに置くことで有効にすることが出来ます。読み込みディレクトリは /etc/fonts/fonts.conf で定義されています。
fontconfig のバージョンによってはディレクトリが異なる可能性もありますが、その場合は /etc/fonts/fonts.conf の中を覗くと対象ディレクトリがわかるはずです。
$ cp ~/msGothicFake.ttf ~/.fonts/
$ sudo fc-cache -fv

結果

ブラウザを再起動して、Hulu を開いてみると、みごと文字化けは解消していました。

ただ、TakaoGothic は縦書きには向いていないらしく、縦書きの字幕だとちょっと文字間隔が不自然だったりします。
時間があったら他のフォントも試してみたいと思います。


もっと良い方法があるはずだが…

今回のケースは MS Gothic という名前のフォントが無かったのが問題なので、fontconfig の設定次第では不自然なフォントを作成しなくても良いはずです。
しかし、いろいろ試してみたのですが、なかなかうまく行きませんでした。
以下のような状態でも、うまく動かないのです。
$ fc-match "MS Gothic"
TakaoGothic.ttf: "Takaoゴシック" "Regular"

あまり深く追えていないのですが、fc-match で得られる結果に加えて、独自のフォント判定をやっているのではないかと推察されます。

ちなみに、「面倒くさいことをせず、Windows から MS Gothic フォントをコピーしてきてしまっては?」と思われた方も多いはず。
確かにその方法でも文字化けは解消するかと思います。
しかし、その方法はライセンス違反になりますので、ご注意ください。

0 件のコメント: