`

ruby添加压缩文件,乱码问题

    博客分类:
  • ruby
阅读更多
项目中存在pdf文件打包的需求,由于文件名都是中文,结果下载的时候都是乱码
项目在linux下运行,打包下载的主要是给window提供

打包的代码很简单
Zip::ZipFile.open "zip文件名.zip", Zip::ZipFile::CREATE do |zip| 
  zip.add("zip包中的显示的文件名(或者文件路径)","要打包的文件(路径)")
end


测试下载之后是乱码
我这里要打包的文件也是ruby生成的,他的编码格式是utf-8,下载到window上一般是gbk(我用gb2312测试是失败的)

需要把文件名称转码
Zip::ZipFile.open "zip文件名.zip", Zip::ZipFile::CREATE do |zip| 
  zip.add(Iconv.iconv("GBK//IGNORE", "UTF-8//IGNORE", "zip包中的显示的文件名或者文件路径"),"要打包的文件(路径)")
end


ruby2.0之后

"zip包中的显示的文件名或者文件路径".encode("GBK", :invalid => :replace, :undef => :replace, :replace => "?")



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics