epubcheckの日本語文字化け対策
以前、このブログで発表して現在配布中の「EPUB3トータルデータチェッカー」なのですが、どうも日本語のパス名が化けて表示されるようで少々気になっていました。エラーメッセージ自体は英語ですのでそこまでの問題ではないのですが、JEPAがepubcheckの日本語化バージョンを発表したなどというニュースもありましたし、これが標準になってくるとエラーメッセージそのものが文字化けして読めないというような事態になってきます。これでは少々寝覚めが悪いのも確かですのでちょっと調べてみました。
.bash_profileを書き換えてみたけれど・・・
「java mac 文字化け」などで検索すると、事例がそれこそ星の数ほど引っかかるのですが、要はjavaの内部処理コードのデフォルトがShift_JISなため、そのままでUTF-8環境に書き出すと日本語部分が文字化けしてしまうということのようです。「ターミナルの文字コードをShift_JISに設定すれば化けない」なんて情報もあったのですが、そこは諸般の事情で変えたくないので却下です。で、このあたりやこのあたりの情報をもとにまずは.bash_profileに設定を追記してみました。
まずはターミナルを立ち上げて以下のコマンドを入力し、.bash_profileを編集できるようにします。
cd ~
vi .bash_profile
viが立ち上がったら、iキーを入力して挿入モードにし、以下のコマンドを入力します。
alias javac=’javac -J-Dfile.encoding=UTF-8′
alias java=’java -Dfile.encoding=UTF-8′
コマンドを入力し終えたらESCキーを押して「:wq」を入力してファイルを閉じます。viとか普段使わないのでこことかでコマンド調べながらの作業です。
これでターミナルを再起動し、
-java -jar epubcheckのパス epubファイルのパス
などと打ち込めば、例えパスに日本語が含まれていても正しくチェック結果が表示されるはずです。
ただ、この方法だと(まあbashの設定を変えただけなので当たり前なんですが)ログ出力したテキストファイルにまでは効力が及ばないようで、相変わらずログテキスト内では文字が化けてしまっています。
「export _JAVA_OPTIONS=-Dfile.encoding=UTF-8;」を追記して文字化け解消
そこで、ここの情報をもとに、「-java -jar epubcheckのパス epubファイルのパス」の前に「export _JAVA_OPTIONS=-Dfile.encoding=UTF-8;」を追記してみました。
つまりjavaを実行する前に出力文字コードをUTF-8にするオプションを連続実行するようにしてみたわけです。
はい、ちゃんと日本語になってくれました。
改訂済の「EPUB3トータルデータチェッカー 1.2.1」はこちらからダウンロードしていただけます。
なお、今回はJEPAの日本語化バージョンの元バージョンが「3.0」(英語最新版は3.0.1)であることから、内包するepubcheckのパッケージを差し替えることは見送りました。従いまして、エラーメッセージ自体は従来通り欧文で表示されます。将来的に日本語化バージョンがバージョンアップした場合には、適宜差し替えを考えております。
epubcheckのエラーメッセージの内容につきましてはここが参考になります。
なお、こちらのTIPSやアプリケーションを利用された結果生じた損害につきまして私は一切の責任は負いかねますので、あくまで自己責任にてご利用ください。
(2013.10.29)