-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Кириллица в именах файлов #7
Comments
Кодировки - это вообще больное место в cygwin. От версии к версии они меняют правила работы. В realsync используется далеко не самая новая версия cygwin, именно из-за того, что там проблемы с кодировками минимальны - но, видите, все же всплыло что-то. Попробуйте запуститься на более свежей версии cygwin (заменить файлы в bin/win32) - вдруг поможет. |
ok, попробую. спасибо. |
Помогло, кстати? Чем дело закончилось? |
На сколько я помню, нет. Закончилось объяснением человеку, что кириллица в именах файлов - это в принципе, не очень хорошо в веб-разработке. :) |
На форумах нашол вот такой вариант фикса |
Последний раз я экспериментировал с кодировками и cygwin применительно к RealSync 3 года назад. Вполне вероятно, что за 3-то года разработчики cygwin все посторонние эффекты починили, и достаточно просто заменить версию cygwin в составе RealSync (bin/win32) на свежую, чтобы все заработало. |
Попробовал заменить и тут же столкнусля с проблемой. В новом cygwin отсутствует cygminires.dll. Поменял все "*.dll" и ".exe" файли в папке (bin/win32) видает ошибку при запуске C:\RSync>realsync.exe Если не менять perl.exe то запускаетса но проблема не исчезает.(Даже в консоли вместо кирилици - ASCII ) |
Понятно. Ну, значит, нужно экспериментировать и разбираться, простой заменой версии не обойтись. Там же накладываются 5 факторов: кодировка виндовой консоли, кодировка перла (что бы это ни означало), кодировка rsync-а, кодировка cygwin, кодировка сервера. Попробуйте еще вот эту ошибку в перле (который из cygwin-а) решить так:
Потому что если вы распечатаете realsync.exe, то увидите там вот такую командную строку вызова: bin\win32\perl.exe -e "use File::Basename; do(dirname( Вот в этом месте cygwin-овский perl и ругается на то, что не может найти File::Basename. И еще может потребоваться заменить не только perl.exe на cygwin-овский, но еще и все модули, которые требуются realsync-у. Они все в bin/win32/lib/, и их очень-очень много (в том числе и их бинарные dll-ки в bin/win32/lib/auto; уж не знаю, как они в cygwin-овском perl называются и где лежат). |
Попробовал поменять полностью папку bin/lib большенство файлов заменил аналогами. Не нашел аналогов за названием Но вроде 1 раз норм кирилица прошла с Win7 на Ubuntu 12.04 (1 раз, скорее как глюк так как повторная отправка файла изменений не дала. Но факт остаетса, что уже радует.) |
Тут вот какая история: для realsync-а нужны модули из Win32, чтобы сворачиваться в трей (справа внизу маленькая иконка), издавать бибиканье и т.д. Я подозреваю, что в cygwin-овском perl этих модулей нет; весь вопрос, можно ли все-таки их как-то там задействовать или нет. |
...если, кстати, их никак нельзя задействовать, но perl хочется все-таки cygwin-овский, а не от ActiveState, то можно все упомянутые Win32-функции, наверное, реализовать в виде отдельного exe-шника, который в фоновом режиме должен работать и ждать команд на исполнение этих функций (например, через свой stdin). Этот exe-шник можно было бы написать на Си, скомпилировать и спокойно положить рядом в bin/win32. |
Ну exe-шник врятли напишу. Мне по сути всеровно какой Perl. Сечас попробую cygwin-овский заменить на ActivreState (новой версии). Может и чтото получитса. А за ехе-шник был бы благодарен. Вставил ехе-шник нового ActiveState. И почти успех. Кирилицу, копирует только при открытии. При запуске ярлыка RealSync все файлы с кириличискими именами нормально копируютса на remote-машыну.Но когда ети файли еще раз продублировать то опять "???.docx". Пробую заменить остальные модули Active State. Кирилица в именах сохраняєтса каждий раз при перезапуске realsync. |
По максимуму заменил (все что совпало) модули с ActiveState. Попробовал запустить не пошло...Вивод вот какой....
|
Проблема с Win8 и FreeBSD 9.
По идее, везде utf8, но при запуске удаляются все файлы с кириллицей в именах на сервере и в консоли постоянно появляется что-то вроде:
file has vanished: "/cygdrive/d/....../images/673/P1030685-?????.jpg",
где "????" - это кириллические символы.
Попытка добавить в RSYNC_OPTIONS что-нибуд вроде "--iconv=UTF8,UTF8" даёт ошибки:
iconv_open("UTF-8", "UTF8") failed
rsync error: requested action not supported (code 4) at rsync.c(120) [sender=3.0.6]
Гугление этой ошибки приводит к опции no_chroot у демона, но для не-демона такой опции нет или я чего-то не понимаю.
Вот.
The text was updated successfully, but these errors were encountered: