我需要在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