Непослушные файлы или конфликт кодировок при копировании через FTP

Сайты иногда переезжают с одного хостинга на другой. И когда это случается, приходится выполнить как минимум две операции — копирование файлов и копирование базы данных на промежуточный хост.

Этот промежуточный хост, обычно, рабочая станция под управлением MS Windows, тогда как подавляющее большинство сайтов размещаются на Unix-совместимых серверах. И тут может возникнуть ситуация когда FTP клиент не сможет скопировать часть файлов на промежуточный хост, из за того что кириллическая кодировка имен файлов в UNIX системе (традиционно KOI8-R) не позволит создать файлы на промежуточном хосте.

Обычно это файлы изображений, которые залил при редактировании статей сайта администратор или редактор сайта по протоколу http. В тот момент кодировки верно состыковались, и UNIX перекодировал имена файлов в свою кириллическую кодировку.

В принципе, если ничего другого не остаётся, то можно скопировать эти картинки по http. Пройтись по списку не переданных файлов в вашем ftp клиенте и файл за файлом скачать их с помощью браузера. Но таких файлов может быть довольно много, и путь этот тернист :).

Если же есть доступ по ssh протоколу — а он есть практически всегда на коммерческом хостинге, то проще будет прибегнуть к следующему незамысловатому приему. Упакуйте папку с файлами сайта (или только с пользовательскими файлами сайта), и уже этот архив скачайте по ftp. Можно для упаковки использовать утилиту TAR, тогда команда для упаковки файлов в текущем каталоге будет выглядеть примерно так:

tar -cvvf site-files.tar ./

Потом архив закачивается по FTP на конечный веб-сервер и там уже разворачивается обратной командой:

tar -xvvf site-files.tar

В итоге, кодировка без проблем переживет переезд в контейнере архивного файла. Подразумевается, что кодировки на веб-серверах совпадают.

Мало букафф? Читайте есчо !

Скрипт для рекурсивной распаковки

Сентябрь 18, 2025 г.

Столкнулся с задачей на практике - в архиве tar.gz лежит еще один архив, в котором еще один и так далее... Как с кощеевым яйцом, только цепочка в матрешке куда более длинная. Написал небольшой скрипт для bash, по распаковке такого сюрприза. ...

Читать

HTTP авторизация для nginx

Декабрь 3, 2019 г.

Задача возникла в контексте SEO, требовалось предотвратить индексацию тестовых сайтов поисковыми системами. На практике видно, что инструкции файла robots.txt ...

Читать

Полезные команды для админа хостинга на UNIX

Август 22, 2013 г.

Те кто постоянно работает в командной строке UNIX, не находят ничего сложного в использовании разных утилит. Мне иногда приходится общаться с UNIX через ...

Читать

Обновление пакетов в linux/ubuntu

Февраль 3, 2018 г.

Небольшая шпаргалка по обновлению ПО на UNIX сервере из консоли. Начать лучше всего с перехода на права SuperUser, если вы не зашли на сервер как root пользователь. [crayon-68cc5a4648efa486014526/] Обновим информацию об имеющихся обновлениях пакетов ...

Читать
 

Комментарии к «Непослушные файлы или конфликт кодировок при копировании через FTP»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Непослушные файлы или конфликт кодировок при копировании через FTP”

  1. catcoder:

    Очень помогла подсказка. Клиент залил на тестовый сайт кучу картинок с названиями на кириллице, и когда пришло время переносить сайт на основную площадку, вылезла неприятность.
    Ваш способ очень сэкономил время и нервы.
    Спасибо!

  2. Дмитрий:

    Огромное спасибо за правильную команду :)