项目中存在pdf文件打包的需求,由于文件名都是中文,结果下载的时候都是乱码
项目在linux下运行,打包下载的主要是给window提供
打包的代码很简单
测试下载之后是乱码
我这里要打包的文件也是ruby生成的,他的编码格式是utf-8,下载到window上一般是gbk(我用gb2312测试是失败的)
需要把文件名称转码
[b]ruby2.0之后[/b]
项目在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
[b]ruby2.0之后[/b]
"zip包中的显示的文件名或者文件路径".encode("GBK", :invalid => :replace, :undef => :replace, :replace => "?")