Kazuhiko
kazuh****@fdiar*****
2009年 8月 20日 (木) 05:12:35 JST
かずひこです。 検索してみると、Hiki 0.8.8.1のサイトよりもHiki 0.9devのサイトの方が圧倒 的に多いのに驚きつつも喜びを隠せない今日この頃ですが、みなさんお元気で しょうか? さて、Hikiユーザの大半はEUC-JPで運用していると思いますが、 misc/i18n/hikiconf.rb.sample.enに書いてあるように、iso-8859-1で運用して いるケースもあるはずです。 外国語によるHikiサイトの有名な例は、たぶん http://eigenclass.org/hiki/ ですが、えっと、ここは実は@charset='utf-8'で運用しているようで、でも日本 語メッセージはeuc-jpのままっぽく、日本語設定のブラウザで見にいくと、メ ニューとかが文字化けしているのがわかると思います。:) で、何が言いたかったかというと、Ruby-1.9対応で入力文字コードをハードコー ドしたいシーンがところどころにあって、だったらそれはUTF-8にしちゃいた い、なので、Ruby-1.9対応が目処がつきはじめた今、さっさとUTF-8化もしちゃ いたい、というお話です。 ぶっちゃけ、データの互換性を除けば、単にファイルをあちこちUTF-8化してま わるくらいでほぼ済みそうな気もするので、ひとまず手元でUTF-8化してから、 データの互換性のことを検証していきたいと思います。 先日、守岡さんにお会いしたときに相談したところ、EUC-JPやISO-8859-1で validなバイトストリングはUTF-8としてvalidにはならないらしいので、リクエ ストされたページ名がなかったら過去のencodingを探しにいく、という処理は問 題なさそうです。 なので、データの互換性の対策としては * 見つからなかったら過去のencodingのページ名で取得を試みる * やっぱりデータは一括で自動変換しちゃう(←tDiary式) の二通りが可能だと思うのですが、どうしましょう? 後者は、ファイルシステムにおいてあるページだけなら楽ですが、CVSやらSVNや らのバックエンドのことまで考えると、それなりに面倒そうです。 前者は、リクエストされたページ名から実際に存在するページ名に変換(もしく はそのまま)するAPIを用意して、それを各バックエンドで使うように変更して まわる必要があります。 tDiaryと違って、Hikiではバックエンドがいろんな種類があるので、すべてを ウェブからのリクエストをトリガーに自動変換するのはけっこう困難な気がしま す。設定ファイル(CGIから保存されたhiki.conf)の変換くらいが妥当で、それ 以上のデータ変換は、シェルからこうやればできます、みたいなHowToの提供 じゃだめ?と思っているところです。 そんなわけで、このあたりについてご意見やアドバイスがあれば、ぜひよろしく お願いします。 かずひこ