CentOSからPhantomJSを実行すると画面キャプチャの日本語が表示されなくなる問題
CentOSからPhantomJSを実行すると画面キャプチャの日本語が表示されなくなる問題
はじめに
PhantomJSをCentOS(6.5)から実行すると、保存した画面キャプチャの日本語が文字化けする問題があった。
コード
var page = require('webpage').create();
page.open('https://www.google.co.jp/intl/ja/about/', function() {
window.setTimeout(function() {
page.render('test.png');
phantom.exit();
}, 200);
});
実行コマンド
phantomjs test.js
実行結果

対応方法
日本語フォントが入ってないか、フォント設定が上手くいってなかったので設定する。
yumから日本語フォントをインストール
sudo yum groupinstall "Japanese Support"
フォント設定ファイルを修正
sudo cp /etc/fonts/fonts.conf /etc/fonts/fonts.conf.original sudo vim /etc/fonts/fonts.conf
「Font directory list」から/usr/share/fonts以外をコメントアウト。
すべて読み込むと文字化けされていた。
<!-- Font directory list --> <dir>/usr/share/fonts</dir> <!-- <dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/TTF</dir> <dir>/usr/local/share/fonts</dir> <dir>~/.fonts</dir> -->
フォントキャッシュ更新
sudo fc-cache -fv
実行結果(再実行)

無事に日本語フォントが読み込まれた。