欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ruby添加压缩文件,乱码问题 博客分类: ruby rubyzip 

程序员文章站 2024-03-24 16:49:28
...
项目中存在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 => "?")



相关标签: ruby zip