Акцентированные символы в именах файлов в zip-архивах - PullRequest
0 голосов
/ 11 февраля 2011

Библиотека 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" }
}

Но они выглядят поврежденными в полученном zip:

$ 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 Ответ

3 голосов
/ 11 февраля 2011

В целом, я бы всегда воздерживался от использования не-ascii символов (которые включают символы с акцентом) в любом имени файла - особенно в том, которое предназначено для программного доступа, и особенно в сжатом файле. Мало того, что это может вызвать неприятности, учитывая другие языки, которые не так чувствительны к международному, но декомпрессоры, как известно, плохо работают с не-ascii символами.

...