1

我看到一個相對比較奇怪(很難診斷)與IE8,Rails 3.0.3,PostgreSQL和delayed_job的組合錯誤。奇怪的UTF-8字節編碼問題與Rails,IE,PostgreSQL,delayed_job

我有我的網頁上的一個文本區域,並在控制器I延遲與delayed_job的一個消息,包括:具有從文本區的內容的對象:

SomeMailer.delay.send_message(message) 

這適用於Chrome罰款,FF,Safari。但在IE8 只有只有當我實際上在文本區域中輸入文本,它看起來像只有當我在文本區域輸入回車(我認爲),我得到這個錯誤從控制器:

在UTF-8

這在我看來是時候的delayed_job被序列化工作,通過ActiveRecord的數據庫,它不喜歡在換行字符編碼

無效字節序列(\ r \ n)中。這有點難以弄清楚,因爲我不知道這是IE,Rails,delayed_job還是Postgres問題。

注意事項:我在本地出現這個錯誤,但是它沒有出現這個錯誤出現在Heroku上 - 所以也許他們的數據庫配置比我更好?

環境

  1. 滑軌3.0.3
  2. 紅寶石1.9.2
  3. 的Postgres 8.4 - 編碼UTF8,整理的en_US.UTF-8
  4. delayed_job的2.1.4
  5. IE 8

任何雖然ts將不勝感激。

回答

1

您是否在發送給IE8的HTML中設置了您的編碼?例如:

<!doctype html>  
    <head> 
    <meta charset="utf-8"> 
    </head> 

其他瀏覽器可能正在解決缺少的信息,並假設編碼文本區域中的數據時使用UTF-8。

+0

是的,果然我的元標籤有一個錯字,應該是: arun 2011-04-18 18:31:08

+0

我應該指出我的例子來自HTML5應用程序,因此細節稍有不同。無論如何,我很高興它爲你解決了! – Scott 2011-04-18 18:54:23