Rails CSVfile upload字符编码问题

我知道有很多关于这方面的线索,但没有一个解决schemebuild议似乎不适合我的原因…

我在用:

Ruby 1.9.2

Rails 2.3.8

我的用户在MS Excel中创buildCSV文件,然后需要将这些file upload到Web应用程序。 我的Web应用程序和数据库后端使用UTF-8,并且所有特殊字符(例如英镑符号)在上载时被损坏。

我正在阅读这样的文件:

@file = params[:import_file][:uploaded_data] 

然后使用以下命令获取文件的编码:

  source_encoding = "UTF-8" if @file.external_encoding source_encoding = @file.external_encoding.name end 

对于我的testing文件,源编码值是ASCII-8BIT。

然后我试着做:

 @file.each {|line| print "#{line.force_encoding(source_encoding).encode!("UTF-8") }\n" } 

以查看是否所有的文本都显示正常。 但是,这给了我这样的错误:

从ASCII-8BIT到UTF-8的“\ xA3”

如果我正在尝试阅读CSV:

 dataArray = CSV.read(@file, encoding: source_encoding) 

这次没有错误,但是所有的特殊字符都是一样的? 字符。

任何指针,我可能会出错或正在导入用MS Excel创作的CSV文件只是一个不可能的任务?

问候,

奥利