无法在iso-8859-15中保存文件

时间:2014-04-11 07:53:12

标签: ruby ruby-on-rails-3 encoding iso-8859-1 iso-8859-15

我需要在rails中生成一个编码为iso-8859-15的文件。为此,我使用以下代码:

File.open( "#{ Rails.root }/tmp/#{ id }", 'w:iso-8859-15:iso-8859-15' ) { |f| f << Model.info_in_iso-8859-15 }
respond_to do |format|
  format.text { send_file( route, filename: 'info', type: 'text/plain; charset=iso-8859-15; header=present' ) }
end

问题在于,当我看到文件的编码时,它使用的是iso-8859-1,所以我遇到了一些像€等符号的问题。我已经在Intenet上冲浪了好几个小时,但我找不到任何红宝石。

提前致谢。

编辑:

这是我用来转换为iso-8859-15的方法:

def normalize_to_iso8859( string )
  if string and string.class == String
    string.gsub(/[\u201c\u201d]/, '"').gsub(/[\u2013]/, '-').encode( "ISO8859-15" )
  else
    string
  end
end

0 个答案:

没有答案