我需要在 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,所以我遇到了一些像 € 等符号的问题。我已经在互联网上冲浪了几个小时,但我找不到任何关于 ruby 的东西。
提前致谢。
编辑:
这是我用来转换为 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