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文件只是一个不可能的任务?
问候,
奥利