2012-08-26 138 views
0

我有一個奇怪的編碼問題,或者我這樣做很簡單,錯誤的方式。也許有人有一個想法會發生什麼。信息:我是紅寶石新手!ruby​​ on rails - heroku postgres - 編碼

我有一個景觀名稱陣列,他們有像'äüöéèà...'這樣的特殊字符。在我的表單中,我希望用戶選擇這些景觀的多個項目。於是我開始跟所有的景觀名稱的select_tag:

<%= select_tag 'model[landscapes][]', options_for_select(AVAILABLE_LANDSCAPES, @landscapes_selected), { :multiple => true, :size =>5, :id => "model_landscapes" } %> 

在我的模型我在數據庫中保存這些名稱和一切工作正常。我已經在景觀字符串中使用了這些特殊字符的大數據庫。現有的景觀條目以'ländscape1,lsndscape2,blalilü'給出。我在保存或從數據庫獲取數據方面沒有問題。在我的本地機器上使用mysql數據庫,這工作正常!但是當我在heroku上運行我的應用程序時,我遇到了編碼問題。當我用'â'字符保存一個字符串時,它用'\ xC3 \ xA2'保存。

+0

從未使用過heroku。但是,你的服務器和客戶端來自postgres的編碼是什麼?您可以運行這些命令「show server_encoding; show client_encoding;」 – user673207

+1

另一件要檢查的事項是:確保在每個文件的頂部有'#encoding:utf-8'這行,該文件具有硬編碼的特殊字符。 – user673207

+0

我在哪裏可以運行這些命令,如'show server_encoding'? –

回答

1

我不知道爲什麼這個問題只出現在我在heroku上運行我的應用程序!

但是,這個工作對我來說:

我的錯誤是我保存到選定的風景在我的數據庫字符串!

serialize :landscapes 

保存和加載我的景觀作爲一個數組,然後我沒有編碼問題!