1

Я пытаюсь использовать RSYNC для синхронизации файлов из системы Solaris 9 (SunOS 5.9) в Windows Server 2008 R2 (через cygwin)

Существует много файлов, содержащих такие символы, как "ä", "ö", "ü" или "ß". Которые отображаются правильно только тогда, когда пользователи Windows получают доступ к Solaris-Samba-Share. Rsync показывает эти символы как: # 201 для "ü". После копирования в окна символы становятся "точками", например:

  • <- Точка

А на солярисе они выглядят так: ▒

Можно ли использовать функциональность rsync "--iconv" для преобразования имен файлов в правильный формат? Как определить кодировку имени файла на машине соляриса?

1 ответ1

0

Я столкнулся с той же проблемой и обнаружил, что вы можете использовать инструмент convmv, чтобы найти кодировку для файла, а затем использовать опцию --iconv rsync.

  1. Скачайте convmv с https://www.j3e.de/linux/convmv/ и распакуйте
  2. Проверьте доступные кодировки с convmv --list
  3. Попробуйте (или напишите сценарий), какая кодировка работает с convmv, например, с convmv -f iso-8859-1 -t UTF-8 /path/to/file (код возврата в $? 0, когда преобразование работало, а не 0 в противном случае)
  4. Когда будет найдено правильное кодирование, используйте rsync с параметром --iconv , например, rsync --iconv=ISO-8859-1,UTF-8 /source /destination

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .