Кодировка имени файла повреждена после распаковки в Windows


1

Я заархивировал каталог на моем сервере Linux. Многие файлы в каталоге имеют немецкие умлауты в именах файлов. Файловая система - ext3, а языковой стандарт системы - de_DE.utf8.

Я использовал следующую команду для создания zip-файла:

zip -r somezip.zip somefolder/

Я передал этот файл через WinSCP на мой ноутбук с Windows и разархивировал его. Проблема: все имена файлов с немецкими умлаутами не работают. На моем Linux-сервере имена файлов отображаются правильно.

Я предполагаю, что сделал ошибку, когда создал файл zip.

Кто-нибудь есть идеи, как я могу сохранить правильную кодировку имени файла, когда я архивирую файлы командой zip на linux?

Ответы:


3

Вероятно, это связано с тем, что Windows настроена в кодировке latin-1.

Я думаю, что самый простой способ - временно установить локаль на iso-8859-15 и снова запустить zip:

export LC_ALL=de_DE.iso885915
locale # Check that the locale was applied
zip -r somezip.zip somefolder/
export LC_ALL=de_DE.utf8 # Restore

Если первый шаг не выполняется из-за того, что у вас не установлен языковой стандарт, вы можете настроить его с помощью:

sudo locale-gen de_DE.iso885915
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.