`

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 => "?")



分享到:
评论

相关推荐

    用ruby读excel文件生成xml文件

    标题 "用ruby读excel文件生成xml文件" 描述的是一项技术任务,即使用Ruby编程语言来处理Excel文件,并将其内容转换成XML格式。这在数据迁移、格式转换或与不支持Excel格式的应用程序进行数据交换时非常有用。Ruby库...

    ruby 读取cfg文件

    在Ruby编程语言中,读取配置文件(如cfg文件)是一项常见的任务,这通常涉及到从文件中获取特定的键值对以供程序使用。在本篇文章中,我们将深入探讨如何在Ruby中有效地读取和处理cfg文件,以及如何根据指定的键来...

    Ruby读取INI文件

    Ruby是一种动态且灵活的编程语言,它在处理各种文件格式时提供了丰富的库支持。当我们谈论“Ruby读取INI文件”时,我们指的是使用Ruby代码解析和操作INI配置文件。INI文件是一种简单的文本文件格式,常用于存储软件...

    Ruby Ini文件读写

    3. 编码问题:如果INI文件包含非ASCII字符,应确保使用正确的编码读取和写入,避免乱码问题。 4. 错误处理:在读写过程中,应考虑可能出现的异常情况,如文件不存在、权限问题等,使用适当的错误处理机制。 通过...

    Ruby读写txt文件

    在处理文件时,可能会遇到权限问题或其他错误。因此,建议使用`begin-rescue-end`块来捕获并处理异常。 ```ruby begin File.open('example.txt', 'r') do |file| # 文件操作 end rescue Errno::ENOENT puts ...

    eclipse for RDT中文乱码问题

    Eclipse 中 RDT 开发 Ruby 应用程序中文乱码问题解决方案 在 Eclipse 中使用 RDT 开发 Ruby 应用程序时,经常会遇到中文乱码问题。这是因为 Eclipse 和 RDT 的默认编码格式不支持中文字符,导致中文字符显示不正确...

    ruby实现文件对比资料

    在Ruby编程语言中,文件对比是一项常见的任务,尤其在处理文本文件、代码比较或日志分析时。本文将深入探讨如何使用Ruby实现文件对比,并提供相关的实例和技巧,帮助你编写出自己的文件对比脚本或生成对比报告。 一...

    ruby库帮助文件

    ruby的库帮助文件,对于Ruby开发者应该必备的工具

    ruby上传文件

    在Ruby编程语言中,文件上传是一项常见的任务,特别是在构建Web应用程序时。本项目提供了一些实用的文件上传功能,包括控制器(controller)、视图(view)和数据库交互部分。以下是对这些知识点的详细解释: 1. **...

    ruby打包文件ruby入门通

    ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件

    ruby2.1.6安装文件

    Ruby是一种面向对象、动态类型的脚本语言...如果你需要在Windows环境下使用Ruby,提供的“ruby-2.1.6”压缩包文件将包含所有必要的组件,包括Ruby解释器、标准库以及可能的开发工具,使得安装和使用Ruby变得更加简单。

    Ruby 与编码

    Ruby 与编码 常见问题 * 乱码的问题 * Ruby 中 Unable to convert "\x89" from ASCII-8BIT to UTF8 *Incompatible character encodings: ASCII- 8BIT and UTF-8

    在iOS使用ZipArchive压缩和解压缩文件

    要使用ZipArchive压缩文件,首先需要导入相关的头文件: ```objc #import "ZipArchive/ZipArchive.h" ``` 接下来,你可以通过以下步骤压缩文件: ```objc NSString *srcPath = @"原始文件路径"; NSString *dstPath ...

    ruby 最新 安装文件 与 API

    标题中的"ruby 最新 安装文件"指的是Ruby的最新版本安装程序,这通常是针对特定操作系统的,比如在描述中提到的"ruby window 版本安装文件",是指适用于Windows平台的Ruby安装程序。RubyInstaller是为Windows用户...

    ruby文件操作,简单ppt

    - **"a"**:追加模式,所有写入的数据都会被添加到文件末尾,不会覆盖现有数据。 - **"r+"**:读写模式,可以在同一个文件对象上同时进行读写操作,文件必须已经存在。 - **"w+"**:读写模式,可以在同一个文件对象...

    ruby程序安装文件

    2. **解压**:使用解压缩工具(如WinRAR或7-Zip)打开并提取压缩包文件`ruby-2.1.0`。 3. **编译**:进入解压后的目录,使用`./configure`命令来配置安装环境,然后运行`make`进行编译。 4. **安装**:编译成功后...

    ruby离线gem文件

    ruby资源文件,ruby rdoc.gem文件,离线ruby文件包

    ruby文件操作大全

    ruby文件操作大全,主要是DIR,FILE和文件夹类的相关操作,比较实用

    ruby生成java文件的工具

    根据压缩包子文件的文件名称列表,我们可以推断出这个工具可能生成的Java代码结构: 1. `sqlmap.rb` - 这个文件可能包含用于生成SQL映射的逻辑,类似于MyBatis的XML映射文件,用于定义数据库查询和操作。 2. `dao_...

Global site tag (gtag.js) - Google Analytics