![]() |
Если поставить FreeBsd и ftpd. При копировании русских папок заканчивающихся на я происходит обрез. т.е хня скопируется как хн
Гугль сказал что это стандартный глюк, обойти его можно если писать букву Я большой. Linux Red Hat 7.2 + ftpd - такой же глюк Solaris + vsftpd - все ок RH7.3 с wu-ftpd - глюк RH 7.3 + vsftpd - все ок RH 6.2 + ftpd-BSD - глюк Solaris + wu-ftpd - глюк А вот возможные варианты решения данной проблемы http://ru-admin.com/modules.php?name=Artic...articles_id=843 http://ru-admin.com/modules.php?name=Artic...articles_id=844 |
Раньше много копий об эту букву поломали. Напомню, что происходит. При появлении на сервере файла, в имени которого содержится буква "я", в клиенте (напр. total commander) в имени файла эта буква и следующий за ней символ не отображаются. В результате мы имеем битое имя, файл можно скачать (такой же кривой) и нельзя удалить. No such file, понимаешь.
Наткнулся на решение этой проблемы, попробовал - всё работает. отсюда: http://forum.krasnogorsk.ru/index.php?boar...y;threadid=2637 ============================================== Tim: Тема актуальна для всех, кто держит на Unix файлы с русскими именами в кодировке 1251. Как известно, ProFTPD неправильно обрабатывает каталоги и файлы, содержащие маленькую русскую букву "я", код которой (255) совпадает с IAC (Is A Command) протокола telnet. Опять же, непонятно почему ProFTPD весь сетевой i/o пропускает через telnet-фильтр - разве FTP протокол предусматривает возможность передавать telnet-последовательности на FTP-сервер? Дабы исправить сие мерзкое поведение, надо сделать следующее: - открываем файл src/netio.c - ищем там следующий кусок кода (или похожий на него): switch (mode) { case IAC: switch (cp) { case WILL: case WONT: case DO: case DONT: mode = cp; continue; case IAC: mode = 0; break; default: /* Ignore */ mode = 0; continue; } break; case WILL: case WONT: pr_netio_printf(out_nstrm, "%c%c%c", IAC, DONT, cp); mode = 0; continue; case DO: case DONT: pr_netio_printf(out_nstrm, "%c%c%c", IAC, WONT, cp); mode = 0; continue; default: if (cp == IAC) { mode = cp; continue; } break; } и вырезаем его целиком, начиная от команды switch и до завершающей фигурной скобки. Можно вырезать cut-ом, можно закомментить #if 0 ... #endif (я сделал второе). Пересобираем, радуемся жизни - все работает. ============================================== |
А вообще, насколько я помню, по RFC (номер не помню) запрещается использоватьнациональные языки окромя английского и прочих романо-германских (буквы одни и те же) :)
|
Текущее время: 16:05. Часовой пояс GMT. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot
Content Relevant URLs by vBSEO 3.5.0 RC2