req

開発日記: Rails - LANG=ja_JP.UTF-8 で MongrelがレスポンスヘッダのLast-Modified の時と分を漢字で返す

自作のHTTPクライアントでMongrelサーバにアクセスして取得したコンテンツをキャッシュしようとしたら時刻のパースに失敗。

Live HTTP headersで確認すると、Last-Modifiedが文字化け。

DBにある日付データが 2007/02/28 3:00:27 とか入っていて

headers['Last-Modified'] = @hoge.updated_at.gmtime.strftime('%a, %d %b %Y %H:%M:%S GMT')

といった感じで値を入れるコードが、

# => Last-Modified: Wed, 28 Feb 2007 03:00:27 GMT

として欲しいのに、

# => Last-Modified: 水, 28月 2007 03:00:27 GMT

みたいな。。

ネットを検索しても情報が無かったのでログを出して試す。

time = Time.now
p ActiveSupport::CoreExtensions::Time::Conversionsのtime.to_formatted_s(:db)

これは、OK。

p @hoge.updated_at

だと漢字が現れる。更に奥まで探ってコード書き換えてもいいんだけど、

結局、

LinuxのLANG環境変数をCに変えて回避してます。