Ошибка при архивировании файлов с символами Юникода в именах с помощью Win7 «отправить в> сжатую (заархивированную) папку»

12

Когда я пытаюсь заархивировать файлы, содержащие в своих именах символы Юникода, такие как © или ™, я получаю следующую ошибку:

[Название окна] Ошибка сжатых (заархивированных) папок

[Содержимое] «C: \ Asd ™ .txt» не может быть сжато, поскольку оно содержит символы, которые нельзя использовать в сжатой папке, например ™. Вы должны переименовать этот файл или каталог.

[OK]

Это стало проблемой, только когда я переустановил Windows 7. У меня, вероятно, были некоторые ресурсы, необходимые из этой ошибки, чтобы решить ее автоматически, но теперь это почти чистая установка, и я не могу заархивировать файлы. Как я могу это исправить?

UPD: Прошло некоторое время с тех пор, как я отправил этот вопрос, я установил некоторые из моих обычных приложений, но проблема все еще существует, и я не уверен, можно ли это исправить, установив какое-то конкретное приложение ранее.


Встроенная архивация Windows 10 может не иметь этой проблемы, как сообщается в комментарии к этому вопросу .

user1306322
источник
3
Без обид, но что не так с использованием надлежащей программы сжатия, такой как WinRAR или 7-Zip (бесплатно)?
Каран
3
Мне понравилось стандартное архивирование окон, потому что это всего лишь два щелчка (с паузой), и это там из чистой установки.
user1306322
Я только что узнал, что архивирование с помощью Windows «Send to» работает так же хорошо, как «лучшее» архивирование Winrar, но намного быстрее.
user1306322
Я хотел бы добавить, что после всех этих неудобств я решил начать использовать 7-zip для быстрого архивирования. Может быть, это на несколько кликов больше, чем раньше, но определенно стоит избавиться от этого разочарования.
user1306322
1
Похоже, встроенная zipper в win 10 теперь поддерживает имена файлов в юникоде.
Имре Пюхвел

Ответы:

17

Если оскорбляющие символы с языка, кроме английского , но один опоров Microsoft, вы можете установить соответствующую MUI (Multilingual User Interface) языковой пакет из Центра обновления Windows или соответствующий LIP (Language Interface Pack) из здесь в качестве возможного исправления.

В дополнение к вышесказанному может потребоваться изменить языковой стандарт системы .

Системный языковой стандарт определяет набор символов по умолчанию (буквы, символы и цифры) и шрифт, используемый для ввода и отображения информации в программах, которые не используют Unicode. Это позволяет программам, не поддерживающим Юникод, запускаться на вашем компьютере с использованием указанного языка. Может потребоваться изменить язык системы по умолчанию при установке дополнительных языков отображения на вашем компьютере. Выбор другого языка для языкового стандарта системы не влияет на язык в меню и диалоговых окнах для Windows или других программ, которые используют Unicode.

Для этого:

  1. Введите «регион» в поле поиска меню «Пуск» (без кавычек)

  2. Откройте апплет « Регион и язык».

  3. Перейдите на вкладку « Администрирование », а затем в разделе «Язык» для программ, не поддерживающих Юникод, нажмите « Изменить языковой стандарт системы» . Если вас попросят ввести пароль администратора или подтверждение, введите пароль или предоставьте подтверждение.

  4. Выберите язык и нажмите кнопку ОК.

  5. Если вам будет предложено перезагрузить компьютер, нажмите « Перезагрузить сейчас», чтобы сделать это.

    Win7 Изменить локаль системы


Тем не менее, если оскорбляющие символы что - то вроде , как уже упоминалось выше, я не верю , что есть какой - либо официальный исправление Microsoft для этого zipfldr.dll ограничения , который существовал до тех пор , как Windows , была эта особенность (так что если вы действительно сделали исправить ее раньше Возможно, вы установили какой-либо сторонний компонент). Из Википедии :

Версии Microsoft Windows включают поддержку сжатия zip в Explorer начиная с версии Plus! Пакет был выпущен для Windows 98. Microsoft называет эту функцию «Сжатые папки». Не все функции zip поддерживаются функцией сжатых папок Windows. Например, шифрование AES, разделенные или составные архивы и кодировка записей Unicode, как известно, недоступны для чтения или записи функцией «Сжатые папки» в Windows XP или более поздних версиях.

Формат ZIP файл не хватало поддержки Unicde в течение длительного времени, и это расширение было добавлено только 6 лет назад в 2006 году в Приложении D - язык кодирования (EFS) в ZIP Формат файла спецификации :

D.1 Формат ZIP исторически поддерживал только исходный набор кодировки символов IBM PC, обычно называемый кодовой страницей IBM 437. Это ограничивает хранение символов имени файла только теми, которые находятся в исходном диапазоне значений MS-DOS, и не поддерживает должным образом имена файлов в других кодировках или языках. Чтобы устранить это ограничение, данная спецификация будет поддерживать следующее изменение. [ Прочитайте документ для отдыха. ]

С тех пор, конечно, все основные архиваторы Windows, реализующие этот формат, были обновлены и теперь включают поддержку Unicode, начиная с WinZip в 2008 году. К сожалению, Microsoft по какой-то странной причине лицензировала стороннюю библиотеку для своей функции сжатых папок (хотя это не так ужасно сложно кодировать поддержку ZIP), и, очевидно, эта библиотека предшествует добавлению Unicode к формату файлов ZIP. Кроме того, в качестве четкого признака того, насколько она заботится об этой функции, Microsoft не обновила код для исправления этой ошибки до даты (по-видимому, даже новый класс System.IO.ZipArchive в последней версии .Net Framework, т.е. 4.5 изначально не правильно понял, но с тех пор ошибка была исправлена).Я предполагаю, что они ожидают, что все установят один из множества полнофункциональных доступных сторонних архиваторов, что я и рекомендовал вам выше.

Вы можете прочитать мрачные подробности об этом специфическом отсутствии поддержки Unicode в Windows в следующей серии постов Microsoft Майкла Каплана :


PS «Я только что узнал, что архивирование с помощью« send to »в Windows работает так же хорошо, как« лучшее »архивирование Winrar, но намного быстрее». - Я только что проверил это, несколько раз. Кроме дополнительного времени, необходимого для открытия WinRAR Добавить в архивВ диалоговом окне выберите ZIP в качестве формата архива и нажмите ОК. Фактическое время, затрачиваемое на сжатие, было примерно одинаковым для обоих, в целом WinRAR занимал меньше времени (хотя различия были незначительными). Если вы заметили огромную разницу, это могло произойти, только если вы сначала протестировали WinRAR для набора файлов, а затем сразу же сжали те же файлы с помощью Compressed Folders. Естественно, что во второй раз Windows уже кэшировала данные, поэтому процесс занял часть времени, которое он занимал изначально. Сделайте это в обратном порядке с набором файлов, к которым вы ранее не обращались во время текущего сеанса Windows, и я уверен, что результат будет обратным. :)

Что касается окончательного сжатого размера, в зависимости от данных / комбинации форматов файлов в архиве, я обнаружил, что любой из двух справляется лучше (хотя опять-таки различия были незначительными). Конечно, форматы 7z или Rar (или даже WinZip ZipX) намного лучше в этом отношении и будут превосходить обычные ZIP почти каждый день (то есть ZIP использует традиционный / устаревший алгоритм дефляции вместо PPMd и т.п.).

Каран
источник
1

У меня та же проблема. Используйте 7-zip manager и заархивируйте ваши файлы, и проблема решена. :)

Jaivin
источник
1
К сожалению, это не то решение, которое я искал. Это включает в себя установку стороннего программного обеспечения, что нельзя сделать на любом компьютере, как это было в моем случае, когда я задавал этот вопрос.
user1306322