2011-10-10 36 views
2

我使用rails 2.3.11並在我的prod機器上出現此異常。在我的開發機器上它運行良好,Bascially Iam提交了一個textarea,內容很大,我的數據庫中的'message'是文本類型的,所以典型的應該不會有任何問題。ActiveRecord :: StatementInvalid:Mysql ::錯誤:不正確的字符串值:' xE2 x98 xBA。 x0D x0A ...'

ActiveRecord::StatementInvalid: Mysql::Error: Incorrect string value: 
'\xE2\x98\xBA.\x0D\x0A...' for column 'message' at row 1: INSERT INTO `table_xyz 
+0

你使用相同的數據庫進行開發和生產???檢查你的生產數據庫???也提供你的代碼編寫相同.. – Salil

+0

這應該是哪個字符集/編碼?如果你指定了utf8,那麼它會被拒絕,因爲它是一個無效的utf8序列。 – tripleee

+0

這[答案] [1]應該幫助 [1]:http://stackoverflow.com/questions/947975/how-can-i-process-data-to-avoid-mysql-incorrect-字符串值錯誤 – ScottJShea

回答

0

我已經看到這種情況發生(太多次)當數據庫/表中的一個被正確配置爲使用UTF-8,另一種是使用不同的字符集/歸類,比如拉丁文。當填充utf8數據庫時,它是通過複製拉丁數據庫中的數據完成的。當數據包含unicode字符(如☃)時,後續更新/ utf8數據庫條目將失敗。這可能是因爲即使沒有數據複製,不正確的數據庫字符集/排序規則也會導致這種情況。它有時也可以幫助確保您的數據庫yml包含encoding: utf8

+4

FWIW,\ xE2 \ x98 \ xBA是☺的Unicode字符串文字。 –

相關問題