zip存档中文件名中的重音字符

时间:2011-02-11 00:21:21

标签: ruby zip filenames diacritics

RubyZip库很高兴让我创建带有重音字符的文件名:

require 'zip/zip'

Zip::ZipFile.open("my.zip", Zip::ZipFile::CREATE) { |zipfile|
    zipfile.get_output_stream("Café.txt") { |f| f.puts "Hello from ZipFile" }
}

但是它们在最终的拉链中看起来已经损坏了:

$ unzip -v my.zip 
Archive:  my.zip
Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
      19  Defl:N       21 -11% 2011-02-11 11:14 c49ac197  Caf??.txt

如果我在创建它的同一个Linux系统上解压缩文件,文件名会正确恢复,但是我可以相信这些文件可以在其他地方工作吗?或者我应该安全地播放这些名称吗?

1 个答案:

答案 0 :(得分:3)

通常,我总是避免在任何文件名中使用非ascii字符(包括重音字符) - 特别是那些意味着以编程方式访问的字符,特别是在压缩文件中。考虑到其他不那么具有国际敏感性的语言,它不仅会引起麻烦,而且解压缩器在处理非ascii字符方面也是出了名的。