Кодовые страницы Filezilla

FTP — достаточно старый протокол, и 20 лет назад то, что мы сегодня считаем само собой разумеющимся, даже не принималось во внимание. Одной из таких вещей является поддержка неанглийских символов. Когда FTP был разработан, компьютеры в основном использовали английский язык и не могли отображать неанглийские символы, такие как умляуты, буквы с акцентом или иероглифы. Таким образом, протокол FTP был разработан для работы только с английским алфавитом, то есть: 7-битный ASCII.

Проблема в том, что многие FTP-клиенты и серверы преднамеренно отклоняются от спецификации FTP, чтобы поддерживать другие, нестандартные наборы символов.

Чтобы решить эту проблему, протокол FTP был расширен для совместимости с кодировкой UTF-8, которая является расширением ранее использовавшегося набора символов.

Если у вас возникли проблемы с отображением имен файлов, содержащих иностранные символы, это может быть по двум причинам:

  • Сервер или клиент следует оригинальной спецификации относительно символов и отвергает «незнакомые» символы
  • Сервер или клиент нарушает спецификацию и использует пользовательские кодировки

Обратите внимание, что клиент и сервер FileZilla полностью поддерживают UTF-8.

Если у вас есть проблемы с другими клиентами или серверами, установите программы, поддерживающие кодировку UTF-8, или воздержитесь от использования иностранных символов. Все остальное не соответствует спецификации FTP и не работает.

UTF8 особенности

RFC 2640 совместимый сервер должен поддерживать FEAT команду и должен включать строку, содержащую UTF8 в своем ответе:

Command: FEAT
Response: 211-Features:
[…]
Response: UTF8
[…]
Response: 211 End

Конфликтующие спецификации

Существует давно истекший IETF драфт который конфликтует с RFC 2640. Этот драфт также требует FEAT ответ включать UTF8, но в дополнение требует от клиента слать OPTS UTF-8 ON для поддержки UTF-8.

Если RFC 2640 совместимый клиент отправляет OPTS UTF-8 ON, он должен будет использовать UTF-8 в любом случае.

RFC 2640 совместимые сервера не должны устанавливать UTF-8 при OPTS UTF-8 ON.

SFTP протокол

Ситуация с SFTP аналогична ситуации с FTP. Начиная с версии 4 спецификации SFTP для имен файлов требуется кодировка UTF-8.
Однако чаще всего используется протокол SFTP версии 3, реализованный в OpenSSH. Эта версия спецификации SFTP не требует UTF-8. На самом деле, это ничего не говорит о кодировании. Однако разумно предположить, что на этих серверах используется кодировка UTF-8 по следующим причинам:

  • Новая версия протокола требует UTF-8
  • Протокол SSH, по которому работает SFTP, также требует кодировки UTF-8.
  • Даже в версии 3 протокола иногда требуется UTF-8
  • Собственный набор символов большинства современных операционных систем Unix (аналогичный UTF-8) использует UTF-8.

По сути, это означает, что кодировка UTF-8 используется везде, где доступен SFTP.