[Hiki-dev:01293] Hiki UTF8

Back to archive index

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の提供
じゃだめ?と思っているところです。

そんなわけで、このあたりについてご意見やアドバイスがあれば、ぜひよろしく
お願いします。

かずひこ




Hiki-dev メーリングリストの案内
Back to archive index