2008年12月18日木曜日

chm版PHPマニュアルの文字化け対策 UTF-8対応版

http://www.bluefocus.jp/archives/4

この記事で、文字化け対策を書きましたが、2008.12.12付けの日本語版マニュアルで同じ作業をしたら文字化けだったので、
ちょっと調べてみた。(検索タブの文字化けは未対応)

デコンパイルしたとき、吐き出されるコンテンツファイル(.hhc)、インデックスファイル(.hhk)、およびHTML群の文字コードがShift-JISからUTF-8に変更されています。
なお、プロジェクトファイルについては、そもそもASCII文字ばかりなので関係ないです。

っで、おそらくHTML Help Workshopが作られたのがUTF-8が基本になる前の時期だからなのでしょうが、
これらのファイルをShift-JIS決めうちで開くようです。
本来は、これをUTF-8として開かせるべきなのでしょうが・・・とりあえずまだその方法がわからないので・・・
じゃぁ逆に、コンテンツファイル、インデックスファイルをShift-JISに変換してやりましょう
テキストエディタなり何なりでUTF-8からShift-JISへ変更して保存してください。
# 改行コードもLFだったので、念のためCRLFに変えましたが、必要ないかも。
やってみた結果、HTMLファイル群については、変更しなくても大丈夫みたいです。
たぶん、chmの仕組み自体が、HTMLを表示している部分はIE依存なんでしょう。

っで、Shift-JISに変更したファイルを使ってHTML Help Workshopで再コンパイルすると、
無事、文字化けのないchmが出来上がりました。
めでたしめでたし。

検索タブを利用して検索した場合に結果が文字化けしますが、これは、基本的にソースのHTML群をShift-JISに変換するしかないかもしれません。
当然ファイル内のmetaタグも書き換える必要がありますし、なにより、一部UTF-8に定義されていて、Shift-JISに未定義の文字が文字化けします。
これはどうしたもんかなぁ・・・

0 件のコメント:

コメントを投稿