URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 68342
[ Назад ]

Исходное сообщение
"pureftpd русские файлы koi8-r cp1251 ?"

Отправлено Andre.S , 19-Авг-06 21:23 
Ситуация : есть много файлов с русскими названиями, все они были раньше доступны по самбе, теперь есть желание все это перевести под FTP. все русские названия были в кодировке cp1251, и в самбе читались отлично. Поставил FTP pureftpd-mysql, работает, только русское теперь в виде ![ учецбюпл ]! вместо ![ СВЕЖАЧОК ]!

Желания переделать все файлы из cp1251 в koi8-r пока что особого нет. Ищу выход менее болезненного решения.

Пробовал поменять в /etc/enveroment LANG="ru_RU.KOI8-R" на ru_RU.cp1251 но не помогло, чего то я не догоняю.

Подскажите если кто знает - как можно решить мою задачу ?


Содержание

Сообщения в этом обсуждении
"pureftpd русские файлы koi8-r cp1251 ?"
Отправлено perece , 19-Авг-06 22:11 
>Ситуация : есть много файлов с русскими названиями, все они были раньше
>доступны по самбе, теперь есть желание все это перевести под FTP.
>все русские названия были в кодировке cp1251, и в самбе читались
>отлично. Поставил FTP pureftpd-mysql, работает, только русское теперь в виде ![
>учецбюпл ]! вместо ![ СВЕЖАЧОК ]!
>
>Желания переделать все файлы из cp1251 в koi8-r пока что особого нет.
>Ищу выход менее болезненного решения.
>
>Пробовал поменять в /etc/enveroment LANG="ru_RU.KOI8-R" на ru_RU.cp1251 но не помогло, чего то
>я не догоняю.
>
>Подскажите если кто знает - как можно решить мою задачу ?
1). если перекодировка в самбе настроена не была, то имена файлов в CP866, а не в CP1251 как вы подумали. Windows использует OEMCP для имен файлов.
2). а фтп-клиент, в котором хочется видеть имена нормально - тоже на винде?
что-то мне подсказывает (телепатия, мать ия) что если в фтп-клиенте читается "учецбюпл" - то на ФС линукса имя лежит как раз в koi
см "dos charset" и "unix charset" (samba 3+) или iocharset и codepage (samba 2.x) в smb.conf

\^P^/


"pureftpd русские файлы koi8-r cp1251 ?"
Отправлено Andre.S , 19-Авг-06 22:27 
в самбе есть такие строки

    dos charset = 866
    unix charset = KOI8-R

да, фтп клиент на винде.

открываю SSH (puTTY) выставляю кодировку KOI8-R
читается нормально
меняю а WNDOWS-1251 читается также как и в ФТП на винде
создаю папку в кодировке WINDOWS-1251 на русском языке и в фтп она читается нормально.

вот такая ситуевина. ЧТО МОЖНО СДЕЛАТЬ ?


"pureftpd русские файлы koi8-r cp1251 ?"
Отправлено perece , 21-Авг-06 00:53 
>в самбе есть такие строки
>
>    dos charset = 866
>    unix charset = KOI8-R
>
>да, фтп клиент на винде.
>
>открываю SSH (puTTY) выставляю кодировку KOI8-R
>читается нормально
>меняю а WNDOWS-1251 читается также как и в ФТП на винде
>создаю папку в кодировке WINDOWS-1251 на русском языке и в фтп она
>читается нормально.
>
>вот такая ситуевина. ЧТО МОЖНО СДЕЛАТЬ ?
да уж непростая.
осложняется все, как я понял, тем, что фтп-клиент тупит, не понимет что OEMCP надо использовать для имен файлов. самое простое, что можно сделать в такой ситуации - переименовать файлы в код cp1251 (iconv + цикл на шеле или find -exec) и поставить в самбе unix charset=cp1251. однако выглядит это все довольно коряво. не перекодировать (строки * charset отсутствуют в smb.conf) было бы правильнее, но тогда нужен фтп-клиент, понимающий CP866 (читай "консольный" - командочка ftp в вындовсе и far подходят)

\^P^/


"pureftpd русские файлы koi8-r cp1251 ?"
Отправлено littlesavage , 20-Авг-06 20:15 

>Подскажите если кто знает - как можно решить мою задачу ?

Как вариант можно перейти на UTF-8.
Как раз в pure-ftpd, в последних версиях, есть параметр

FileSystemCharset     cp-1251

Но для этого необходимо включить поддержку RFC 2640 (пересобрать pure-ftpd с --with-rfc2640)
После этого все имена файлов будут отдаваться (и приниматься) в UTF-8, в соответствии с вышеуказанным RFC.
Один минус. Многие ftp клиенты пока еще не умеют работать с такими файлами. Хотя виндовый проводник и никсовый lftp справляются с ними отлично.


"pureftpd русские файлы koi8-r cp1251 ?"
Отправлено Zolg , 18-Янв-07 18:41 
автору топика наверно уже поздновато, но пользующим поиск пригодиться :)

> Как раз в pure-ftpd, в последних версиях, есть параметр
> FileSystemCharset     cp-1251
Во-первых не cp-1251, а cp1251 (по крайней мере в 1.0.21)
Во-вторых у  Andre.S файловой системе имена в KOI-8, такчто FileSystemCharset ему не cp1251 указывать нужно, а koi8-r
И наконец в-третьих, кроме FileSystemCharset есть еще замечательный параметр ClientCharset - это как раз то, что отдавать клиенту, не поддерживающему rfc2640.
Т.е. в данной ситуации нужно указать

FileSystemCharset     koi8-r
ClientCharset         cp1251

и практически любой виндовый ftp-клиент правильно отобразит русские имена.

Дополнительно могу порекомендовать перегнать имена файлов из koi8 в utf8, чтобы избежать каких-либо напрягов с i18n имен файлов в дальнейшем. В самбе после этого соответственно пишем:

dos charset = 866
unix charset = UTF-8

в pure-ftpd

FileSystemCharset     utf-8
ClientCharset         cp1251

ps:
> если перекодировка в самбе настроена не была, то имена файлов в CP866, а не в CP1251 как вы подумали. Windows использует OEMCP для имен файлов.

Если только винда не 9x, то это неверно. как минимум 2k+ всегда, когда может, использует юникод. И на самбовых разделах (unix charset = UTF-8) прекрасно уживаются например русские и немецкие (с умляутами там разными) имена файлов.


"pureftpd русские файлы koi8-r cp1251 ?"
Отправлено Murphy , 19-Май-09 08:57 
Не знаю, как у Вас, господа, у меня в pure-ftpd под SuSE Linux 11.1 кодировка ну никак не хотела меняться, пока названия таблиц не указал в верхнем регистре.

FileSystemCharset     UTF-8
ClientCharset         CP1251

После чего почти нормально заработало.

С Уважением к потерянному времени, ибо это приобретённый опыт  :)


"pureftpd русские файлы koi8-r cp1251 ?"
Отправлено Vital , 05-Июн-09 14:35 
>Тогда почему у меня не пашет такая же схема на SUSE 11.0?

Pure просто не запускается если ему указываешь:

FileSystemCharset     UTF-8
ClientCharset         CP1251

Запускается вот так:
FileSystemCharset     UTF-8
ClientCharset       WINDOWS-1251
Но файлы не перекодирует


"pureftpd русские файлы koi8-r cp1251 ?"
Отправлено hz , 06-Июн-09 21:19 
>[оверквотинг удален]
>
>Pure просто не запускается если ему указываешь:
>
>FileSystemCharset     UTF-8
>ClientCharset         CP1251
>
>Запускается вот так:
>FileSystemCharset     UTF-8
>ClientCharset       WINDOWS-1251
>Но файлы не перекодирует

А где это указывать? :) Обязательно программу переустанавливать, или можно это в конфиг-папку pure-ftpd закинуть как-то и просто перезапустить сервер?


"pureftpd русские файлы koi8-r cp1251 ?"
Отправлено Vital , 08-Июн-09 08:37 
>[оверквотинг удален]
>>FileSystemCharset     UTF-8
>>ClientCharset         CP1251
>>
>>Запускается вот так:
>>FileSystemCharset     UTF-8
>>ClientCharset       WINDOWS-1251
>>Но файлы не перекодирует
>
>А где это указывать? :) Обязательно программу переустанавливать, или можно это в
>конфиг-папку pure-ftpd закинуть как-то и просто перезапустить сервер?

В файле pure-ftpd.conf в самом низу.


"pureftpd русские файлы koi8-r cp1251 ?"
Отправлено Computer.Pers , 10-Ноя-09 15:03 
>[оверквотинг удален]
>>>
>>>Запускается вот так:
>>>FileSystemCharset     UTF-8
>>>ClientCharset       WINDOWS-1251
>>>Но файлы не перекодирует
>>
>>А где это указывать? :) Обязательно программу переустанавливать, или можно это в
>>конфиг-папку pure-ftpd закинуть как-то и просто перезапустить сервер?
>
>В файле pure-ftpd.conf в самом низу.

OpenSuse 11.1

cat /etc/pure-ftpd/pure-ftpd.conf
...
FileSystemCharset     UTF-8
ClientCharset       WINDOWS-1251
...

#/usr/sbin/pure-config.pl /etc/pure-ftpd/pure-ftpd.conf
Running: /usr/sbin/pure-ftpd -A -c10 -B -C15 -z -D -E -fftp -H -I15 -lpuredb:/etc/pure-ftpd/pureftpd.pdb -lpam -L20000:8 -m4 -s -U177:077 -u40 -x -r -i -j -k99 -G -Z -8UTF-8 -9WINDOWS-1251 -p30000:40000 -Y0
/usr/sbin/pure-ftpd: invalid option -- '8'
/usr/sbin/pure-ftpd: invalid option -- '9'

WTF ?


"pureftpd русские файлы koi8-r cp1251 ?"
Отправлено Александр , 14-Сен-10 19:28 
>#/usr/sbin/pure-config.pl /etc/pure-ftpd/pure-ftpd.conf
>Running: /usr/sbin/pure-ftpd -A -c10 -B -C15 -z -D -E -fftp -H -I15
>-lpuredb:/etc/pure-ftpd/pureftpd.pdb -lpam -L20000:8 -m4 -s -U177:077 -u40 -x -r -i -j
>-k99 -G -Z -8UTF-8 -9WINDOWS-1251 -p30000:40000 -Y0
>/usr/sbin/pure-ftpd: invalid option -- '8'
>/usr/sbin/pure-ftpd: invalid option -- '9'
>
>
>
>WTF ?

Видимо pure-ftpd собран без поддержки перекодировки файлов