Railsで日本語を使う。

Rails本でお勉強。
環境は既に構築済みなのでRadRailsで"Hello, Rails!"のサンプルを試す。
リクエストURL、コントローラ、アクション、ビューの関係が
丁寧に説明されている。なるほどなるほど〜
と感心しながら日本語を表示をすると文字化けが。
あたりまえといえばそうだけど、文字コードの問題ってどこでもついてくるのね。
ちゃんと注釈*1にもUTF-8で保存しろってあるし、
Railsの日本語周りを調べてみると環境も含めてUTF-8に統一したほうが良さげ。

今更ながらRailsの日本語周りに取り組まれている方々に感謝。
高速道路 *2ってこういうことなのね〜と実感。
#もっとも高速道路で自転車こいでる状態ですが。

で、さっそくRadRailsでのencodingをUTF-8に変更。
(注意:すでにMS932(Shift_JIS)で編集したファイルに日本語が含まれる場合
自動変換されないようなので、別途NKFなどで変換が必要。)

  • メニュー => Window => Preferencs => General => Editors

の"Text file encoding"で"Other"にチェックをいれてUTF-8を選択。
これはすべてのプロジェクトに影響するので、

  • プロジェクトのルートアイコンを右クリック=>Properties=>Info

でプロジェクト毎に設定可能。
さて、これでrhtmlに記述した日本語はちゃんと表示されるはず。
しか〜し、時刻の文字化けは解決せず。
システムから取得したShift_JISな文字列をそのままUTF-8
埋め込んでるのでその前に変換しないと。とりあえず、

NKF.nkf('--utf8', Time.now.to_s)

で回避。もっともUTF-8以外の環境でRailsを運用するケースでもない限り必要ないけど。
実はNKFRubyで標準リファレンスにはいっているのを初めてしりました。

他にも、フォームのパラメータやデータベースと
日本語処理のノウハウが必要になりそうだけどそれはまたの機会に(ってやるの?