On Fri, Jul 10, 2009 at 06:52:17PM +0400, AShen wrote: > On 10.07.2009 18:18, Slava Dubrovskiy wrote: > > разве протокол ftp поддерживает передачу кодировки? > > Насколько мне известно, нет. ftp протокол поддерживает выбор языка общения (LANG) и выводить в utf8 или asis (OPTS UTF8 ON). proftpd очень долго сопротивлялся вводу этих команд, аргументируя тем, что это все drafts, но вот - теперь свершилось. > Для proftpd-1.3 опции CharsetLocal, CharsetRemote не действительные. > Вместо них опции LangEngine on, UseEncoding UTF8 CP1251. верно. при установке/обновлении даже производится попытка закоментировать данные параметры и пишется warning. > Наш proftpd-1.3 собран с поддержкой NLS. кодировка вывода и nls вещи перпендикулярные. mod_lang обрабаывает команды OPTS UTF8 ON и команду LANG. OPTS UTF8 ON позволяет выдавать листинг в utf8 кодировке по запросу клиента. LANG переключает язык, на котором выдаются служебные сообщения (пример: Login incorrect --> Accesso non valido, LANG it). на данный момент поддерживаются языки zh_CN, en_US, it_IT. для русского нужно писать po файл. конфиг-команды: LangDefault переключает язык по умолчанию. сейчас это en_US. UseEncoding - команда перекодировки. надо отметить, что UseEncoding on включает поддержку opts utf8 on, когда UseEncoding utf8 cp1251 включает explicit encoding и выключает поддержку opts utf8 on. основная проблема: при explicit encoding (это было и в прошлом патче) сохраняется проблема с буквой "я" в koi8-r, при UseEncoding on включается поддержка opts utf8 on и проблема с "я" пропадает. именно поэтому и был выбран mod_lang. opts utf8 on на данный момент поддерживают практически все клиенты, кроме IE 6 (вот черт, да?). хотя даже с включенным opts в lftp всплывала проблема с показом - показывались ???. почему - пока не разобрался. > > Во всяком случае я это решал путем указывания правильной кодировки в > > клиенте. > > Самое лучшее решение. Тут я с тобой полностью согласен. самое рабочее решение - выбор cp1251 для сервера. -- С уважением Афанасов Дмитрий