2011年07月30日(Sat)
■ tDiaryのテーマをUTF-8にしてみた。
tDiaryのテーマ(css)が、github上で見ると、コメントが文字化けしている。これは、githubがUTF-8なファイルしか対応していない一方、tDiaryのテーマはUTF-8化しないで、euc-jpのものが多いため。
euc-jpにしている理由のひとつは、わたしの予想では、IEがIE7までcss内に"@charset utf-8"と記述されたものをきちんと表示していなかったためかと思われる。また、携帯でも一部、いまだUTF-8未対応なブラウザがあるらしい。(未検証)
だけれど、IE8でUTF-8なCSSに対応するようになっているし、tDiaryのHTMLはすでにUTF-8だし、cssもUTF-8に追随しても、そろそろいいのではないかなぁ、と、思い、次の手順で、テーマのREADME/cssをutf-8に変換した。
gitから最新バージョンのテーマを取得
$git clone git://github.com/tdiary/tdiary-theme.git
変換前に確認
$find ./tdiary-theme -type f -name "*.css" -exec nkf --guess {} \; -print > css.log $find ./tdiary-theme -type f -name "README" -exec nkf --guess {} \; -print > readme.log $find ./tdiary-theme -type f -exec grep -l "charset \"euc-jp\"" {} \; > charset_euc-jp.log
css.logには、cssファイルの文字コードとパスが記載。 readme.logには、READMEファイルの文字コードとパスが記載。 charset_euc-jp.logには、cssファイルの一行目に "@charset "euc-jp""と指定されているファイルが記載。
変換
css/READMEは、UTF-8に変換。そして、cssファイル一行目を"@charset "utf-8""に置換。
$find ./tdiary-theme -type f -name "*.css" -exec nkf -w -w80 -Lu --overwrite {} \; $find ./tdiary-theme -type f -name "README" -exec nkf -w -w80 -Lu --overwrite {} \; $find ./tdiary-theme -type f -name "*.css" -exec grep -l "@charset \"euc-jp\"" {} \; -exec sed -i 1s/euc-jp/utf-8/ {} \;
変換後の確認
$find ./tdiary-theme -type f -name "*.css" -exec nkf --guess {} \; -print > css_utf8.log $find ./tdiary-theme -type f -name "README" -exec nkf --guess {} \; -print > readme_utf8.log $find ./tdiary-theme -type f -exec grep -l "charset \"euc-jp\"" {} \; > charset_utf-8.log
…で、ログレベルでは確認したのだけれど、動作の確認をする、theme/themebench.rhtml がわたしの環境では動かない&内容が古いので、どうしようかなぁ…と、思っているところです。