Rails:使用ActiveRecord和TinyTDS时尝试将特殊字符保存到数据库时出错

时间:2013-06-06 03:52:21

标签: ruby-on-rails parsing character-encoding rails-activerecord

我正在尝试使用TinyTDS将此字符“É”保存为使用ActiveRecord到我的sql server的字符串的一部分。有什么想法,我需要做什么来摆脱以下错误?

Exiting
/var/lib/gems/1.9.1/gems/activerecord-sqlserver-adapter-3.2.10/lib/active_record/connection_adapters/sqlserver/database_statements.rb:387:in `execute': TinyTds::Error: Error converting characters into server's character set. Some character(s) could not be converted

我认为错误的字符串如下:JEREMÉ

以下是我用来解析文件的代码......

csv = CSV.parse(csv_text, :headers=>false, encoding: "UTF-8")
csv.drop(2).each do |row|
    person = Person.new(:lastname => row[0], :firstname => row[1])
    playerstats.save
end

1 个答案:

答案 0 :(得分:5)

value = value.force_encoding('ISO-8859-1').encode('UTF-8')

这将使您的字符串数据库感到满意。