0
當字符串包含特殊字符時,將字符串保存到數據庫中的字段時出現奇怪行爲。在這個例子中,「á」或「\ xE1」當包含特殊字符時截斷活動記錄字段
因此,如果該字段是「TESTA」,則保存時保存的字段爲「TEST」。
更令人擔憂的是,如果該字段被驗證爲強制性的。我將它設置爲「á」,驗證通過,但保存空字符串會被保存。使持續記錄無效!
我的數據庫編碼是UTF-8,所以我認爲這是一個編碼問題。
事實上,如果在控制檯上我嘗試一個簡單的測試,我得到這個錯誤:
» 「TEST \ xE1F」 .encode( 'UTF-8')
編碼:: UndefinedConversionError: 「\ XE1」從ASCII-8BIT到UTF-8
那麼,我應該如何正確地在rails/active record中保留特殊字符呢?
感謝您的任何幫助。
如何在模型中設置編碼? – Chris
我仍然收到相同的錯誤。在您的導航控制檯中,「\ xe1」.encode('UTF-8')是否會產生錯誤? – Chris
將其添加到您的控制器和其他使用該特殊字符的文件中。它不會給我任何控制檯上的錯誤。結帳 http://stackoverflow.com/questions/7699018/in-ruby-on-rails-are-encoding-utf-8-and-config-encoding-utf-8-differe –