2012-03-12 72 views
0

我在連接到SQL Server中的遺留數據庫時遇到問題。Encoding :: UndefinedConversionError與activerecord-sqlserver-adapter

Encoding::UndefinedConversionError: "\xC3" from ASCII-8BIT to UTF-8 

數據庫具有LATIN1樣校對:讀取特殊字符的字符串時,並嘗試將其插入到另一個數據庫(SQLite的開發中),這引發了我下面的錯誤發生的問題。我在我的freetds.conf文件中設置了client charset = UTF-8,並且在我的database.yml文件中有encoding: utf8

它實際上似乎freetds的駕駛員做出正確的轉換,但由於某些原因,Ruby庫不知道這件事,因爲有問題的字符串是ESPA\xC3\x91A,這實際上是爲ESPAÑA正確的二進制表示,因此調用force_encoding('UTF-8')上該字符串使錯誤消失。

作爲附加的註釋,當我的字符串分配給其他模型它給了我下面的消息:

Binary data inserted for `string` type on column `email` 

回答

相關問題