datetimeの文字化け

Railsで日付を表示させると、

Sun Jul 23 17:30:00 ???? (?W????) 2006

というように文字化けしてしまいましたorz


この文字化けしている箇所をShift-JISで見てみると、

Sun Jul 23 17:30:00 東京 (標準時) 2006

というようになっています。
Webページのエンコードutf-8なので、文字化けするのは当然なのですが、どうやってこれを解決すればいいのか悩みました。


Rubyの現在時刻を返すTimeオブジェクトを調べてみると、Windowsなど一部の環境では、JSTのようなタイムゾーンを表す文字列がうまく取得できない場合があるようです。
実際に私の環境(WinXP)で、

t=Time.new
p t

としてみると、

Sun Jul 23 17:15:21 東京 (標準時) 2006

と表示されます。
この「東京 (標準時)」の箇所が、「JST」になってくれれば良かったのですが。。。


そこで、どこかでTimeオブジェクトで現在時刻を取得している箇所があると思いTimeオブジェクトを使っている箇所を探してみたのですが、みつからず。
予定としては、「東京 (標準時)」の箇所をテーブルに格納しない(もしくはWebに表示しない)ようにしようと思っていました。


と色々なファイルを眺めていると、config/environment.rbの中に

# Make Active Record use UTC-base instead of local time
# config.active_record.default_timezone = :utc

という記述を発見。

この2行目のコメントを外してタイムゾーンUTCにしてWebを表示させてみると

Sun Jul 23 17:30:00 UTC 2006

となり、これで良いのかわらかないですが、とりあえず文字化けを回避することができました。



もう少し、RubyRailsを勉強した後にもっと良い解決策を探したいと思います。
他の方法など知ってる人がいれば、コメントくださいm(_ _)m