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系统上解压缩该文件,文件名就会被正确地恢复,但是我可以相信这些文件在其他地方也可以工作吗?或者我应该安全地使用它,并简化文件名?
发布于 2011-02-11 08:33:19
通常,我总是避免在任何文件名中使用非ascii字符(包括重音字符) --尤其是那些需要以编程方式访问的文件名,尤其是在压缩文件中。考虑到其他对国际不敏感的语言,它不仅会造成麻烦,而且解压缩器在处理非ascii字符方面也是出了名的差。
https://stackoverflow.com/questions/4964316
复制相似问题