[前][次][番号順一覧][スレッド一覧]

rails:1080

From: のりお <toykyo@t...>
Date: Wed, 26 Apr 2006 21:27:56 +0900
Subject: [rails:1080] Ruby1.8.4(mswin32) Time#to_s文字化け

 のりおです。
 
 railsで
 
 入力画面→確認画面→完了画面(DBコミット)
 
 という流れでデータ管理できるようにしているのですが、
 Rubyを1.8.4(mswin32)にしてから、
 確認画面から完了画面に移るところでデータベース(MySQL)エラーが
 でるようになってしまいました。
 
 原因は、入力する項目に日時データ(datetime型Not NULL)があり、
 確認画面で下記のようなhidden_fieldにデータを持たせているのですが
 
 <input id="item_date" name="item[date]" type="hidden" value="Wed Apr 26 20:13:00 JST 2006" />
 
 これをRuby1.8.4で動かすと、
 
 <input id="item_date" name="item[date]" type="hidden" value="??? 26 20:13:00 ??? 2006" />
 
 のように日時部分が文字化けしてしまい、そのあとの処理で正しく日時データの変換が
 行われず、NULL扱いされてエラーになってしまうのです。
 
 推測ですが、Win版の1.8.4のTime#to_sの動作が1.8.2から変更されていて、
 このような文字化けが起こってしまうのではないかと思っています。
 (強制的に日本語表示される「水 4 26 20:13:00 東京 (標準時) 2006」のように)
 
 Rails東京勉強会で高橋さんが、「Windowsだと日時が強制的にShift-JISで表示される」
 と言っていたので、この問題は日本語版Windowsでしか起こらないと
 思いますが、同じような不具合に直面する方もおられるのではないかと
 思い、投稿しました。
 
 ちなみに、1.8.2に戻すと正常に動作するようになります。
 しかし、Rails1.1は1.8.4推奨なのですよね。
 
 長文失礼しました。
 
 

--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

   @  1078 2006-04-25 23:00 [sato1192two9low@y...] 参加します                              
->    1080 2006-04-26 14:27 ┗[toykyo@t...         ] Ruby1.8.4(mswin32) Time#to_s文字化け  
      1083 2006-04-29 21:27  ┗[moriq@m...          ]                                     
      1103 2006-05-04 12:41   ┗[toykyo@t...         ]