Хостинг. Покалеченные имена файлов в резервных копиях

tennislv
10 років
0
Здравствуйте.
Для того чтобы файлы с кириллическими именами были доступными с браузера (напр. site.com/фотка_с_кириллическом_путем.jpg), я работаю с FTP сервером исключительно в UTF-8 режиме (режим автоопределения не подходит). В этом плане все работает, все супер.
Но когда скачиваю архив резервной копии, то в итоге кириллические файлы получают покалеченные имена, например "Скриншот-03.02.2014.jpg". Это скорее всего происходит и-за того, что Ваш архиватор рассчитывает на то, что файлы в win-1251 кодировке. Примечательно также то, что если создавать архив через файл менеджер, то там с названиями все ок.
Если это возможно, почините пожалуйста.
P.S. можете добавить в faq, что для того чтобы кириллические файлы были доступны через браузер, необходимо заливать файлы в UTF-8 режиме.
rudenko
10 років
0
Напишите пожалуйста путь к файлам с которыми возникает проблема.
tennislv
10 років
0
Абсолютно на любых которые закаченные через FTP с кодировкой UTF-8.
Например: tennislv/tennis.lviv.ua/www/Скриншот-03.02.2014-212717.jpg
rudenko
10 років
0
Заархивированный файл имеет кодировку UTF-8 (такую же с которой Вы его закачали), когда Вы его распаковываете в Windows, в которой кодировка файловой системы cp1251, то вместо имени файла вы видите каракули. Если архив распаковать в UNIX, то имя файла читается нормально, так как там кодировка файловой системы utf-8. Архиватор никаких изменений с именами файлов не делает.
tennislv
10 років
0
1) Название Файла даже без распаковки имеет каракули, когда смотреть на него в WinRar или 7-zip. Т.е. проблема не в Windows и его cp1251, а проблема присутствует абсолютно везде, в любой программе.
2) Если архив делать через Ваш файл менеджер (а не резервную копию), имена файлов получаются нормальными.
Евгений В.
10 років
0
1) Название Файла даже без распаковки имеет каракули, когда смотреть на него в WinRar или 7-zip. Т.е. проблема не в Windows и его cp1251, а проблема присутствует абсолютно везде, в любой программе.© tennislv

Ну так эти программы также используют CP1251 при отображении имён файлов. Разве нет?
rudenko
10 років
0
Если архив делать через Ваш файл менеджер (а не резервную копию), имена файлов получаются нормальными.© tennislv


Только что попробовал заархиваировать файл через файл менеджер, на выходе получил то же самое, что в при создании резервной копии.
Для того, чо б архивировать файлы в кодировке Windows их нужно изменить в файловой системе, а потом архивировать.
Если у Вас кодировка при открытии файлов, сделанных через файл менедер правильная, то скорее всего ее преобразовывает программа, которая разархивирует файл. Сам же файл в архиве находится в той же кодировке, в которой он был залит на сервер т.е. в UTF-8.

С файлами с резервной копии возможно это не происходит так как Ваш разархиватор эту функцию поддерживает только для zip файлов, а там используется tar.gz
itradestorez
10 років
0
разархивируйте скачанный архив в Ubuntu, и все будет ок, я тоже первый раз матерился на каракули.
tennislv
10 років
0
>>Ну так эти программы также используют CP1251 при отображении имён файлов. Разве нет?
WinRar (чем я и пользуюсь) полноценно поддерживает архивы с кодировкой UTF-8 в названиях файлов (по крайней мере так пишет на wiki).
>>Только что попробовал заархиваировать файл через файл менеджер, на выходе получил то же самое, что в при создании резервной копии.
Наверное потому что изначально при заливке файла, в настройках FTP соединения стояло автоопределение или cp1251. Чтобы словить баг, файл должен быть закачан в UTF-8 режиме.
>>С файлами с резервной копии возможно это не происходит так как Ваш разархиватор эту функцию поддерживает только для zip файлов, а там используется tar.gz
Погуглил, zip архив поддерживает UTF-8 кодировку в именах файлов, gzip (tar.gz) - вроде как тоже.

В чем заключается проблема - не знаю, но если она в gzip, то почему бы тогда резервные копии не делать в zip архиве?
rudenko
10 років
0
Наверное потому что изначально при заливке файла, в настройках FTP соединения стояло автоопределение или cp1251. Чтобы словить баг, файл должен быть закачан в UTF-8 режиме© tennislv


Я архивировал тот файл, который был указан в начале темы. Т.е с кодировкой UTF-8.
tennislv
10 років
0
Прикрепил два архива:
"Файл менеджер.zip" - архив файлов сайта (3 файла) сделанных с помощью файл менеджера.
"Резервная копия.tar.gz" - архив тех же 3-файлов сайта, но уже сделанных в меню "Резервное копирование".
В первом случае кириллический файл выглядит нормально "Скриншот-03.02.2014-212717.jpg", а во втором (резервное копирование) - битым "Скриншот-03.02.2014-212717.jpg".
[[upload]Резервная копия.tar.gz[[/upload]]
[[upload]Файл менеджер.zip[[/upload]]
joey
10 років
0
Посмотрел содержимое архивов hex редактором, в обоих файлах "Скриншот-03.02.2014-212717.jpg" сохранено в кодировке utf-8.
www.7-zip.org/history.txt
В 7zip поддержку utf-8 для архивов tar добавили только в 9.29 alpha.
У winrar видимо тоже нет поддержки utf-8 для архивов tar.
tennislv
10 років
0
joey, большое Вам спасибо! Да, действительно, нашел и скачал 7-zip 9.29 alpha, и он увидел кириллические файлы в архиве нормальными. Не думал что состоянием на 2014 год последние версии архиваторов не могут нормально отображать UTF-8 файлы в tar архивах.
Может стоит создавать архивы резервных копий в формате zip? Он во первых легче читается, проблем с ним куда меньше, и даже windows-ом разархивировать можно (в случае чего).
Тема закрита.