cp1251 на ftp (если локаль koi8-r?)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
DeadFish
Сообщения: 71
ОС: Gentoo Linux

cp1251 на ftp

Сообщение DeadFish »

А можно ли сделать на ftp кодировку cp1251, если рабочая локаль koi8-r? Ftp-сервер, как я понял перекодировать не умеет. Файлы для ftp хранятся на отдельном разделе.
Можно конечно перекодировать все имена файлов на этом разделе, но вот как потом получить удобный доступ к ним из ОС?

Или подкиньте линку на рабочий скрипт, который перегоняет имена в транслит.

Зарание пасиб ;)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: cp1251 на ftp

Сообщение sash-kan »

по мотивам рассылки debian-russian

Код: Выделить всё

#!/bin/bash
find ./ -type f -print | tac | sed -e 's/"/\\"/' | while read name; do mv "$name" "`dirname "$name"`/`basename "$name" | uniconv -decode koi8-r -encode Russian-Translit | sed -e 's/?/_/g'`"; done

автор - Fedir Gontsa <gontsa@uch.net>
требует установленного пакета yudit (оттуда берется uniconv).
конечно, можно транслитерировать и множеством других программ.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
clx
Сообщения: 3121
Статус: Think Different !
ОС: Mac OS X

Re: cp1251 на ftp

Сообщение clx »

2 DeadFish:

Какой ФТП сервер? proftpd умеет перекодировать.
iMac 20" Core Duo.
Спасибо сказали:
Аватара пользователя
DeadFish
Сообщения: 71
ОС: Gentoo Linux

Re: cp1251 на ftp

Сообщение DeadFish »

2 clx:
У меня vsftp. Но раз proftp умеет перекодировать, буду смотреть его.

2 Sash Kan:
Щас скачаю yudit и буду пробовать.

конечно, можно транслитерировать и множеством других программ

Я искал, но так до конца рабочего ничего не нашёл. Переводящих текст в транслит программ много, но только нужно ещё дописать получение списка файлов и их переименование.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: cp1251 на ftp

Сообщение sash-kan »

(DeadFish @ Понедельник, 06 Июня 2005, 17:09) писал(а):Я искал, но так до конца рабочего ничего не нашёл. Переводящих текст в транслит программ много, но только нужно ещё дописать получение списка файлов и их переименование.



вставь вызов любой другой вместо

Код: Выделить всё

uniconv -decode koi8-r -encode Russian-Translit

кстати, пока не поздно, предупрежу: пробовать, конечно, лучше на копии (:
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: cp1251 на ftp

Сообщение KiWi »

эм, говорили, что и для vsftpd есть патч для перекодирования...
Спасибо сказали:
Аватара пользователя
DeadFish
Сообщения: 71
ОС: Gentoo Linux

Re: cp1251 на ftp

Сообщение DeadFish »

Для vsftpd вроде есть только патч, который перекодирует файлы, пришедшие на сервер в cp1251:
http://www.opennet.ru/base/patch/ftp_charset_recode.txt.html

А для proftpd действительно есть патч для перекодировки на лету:
http://www.opennet.ru/base/patch/rus_proftpd.txt.html



DeadFish добавил в 06.06.2005 20:59

Оно работает :D

Под Gentoo надо было:

В ebuild'e в строку modules добавить в конец "mod_codeconv":

Код: Выделить всё

src_compile() {
        local modules myconf

        modules="mod_ratio:mod_readme:mod_delay:mod_codeconv"


А пакет libiconv вообще не нужно устанавливать.

Остальное по инструкции.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: cp1251 на ftp

Сообщение KiWi »

(DeadFish @ Понедельник, 06 Июня 2005, 19:59) писал(а):В ebuild'e в строку modules добавить в конец "mod_codeconv":

... и в src_unpack написать, чтобы патчил файл сам, хотя я оформил это как use-флаг :)

Код: Выделить всё

IUSE=".... codeconv"
src_unpack() {
....
        if use codeconv; then
                epatch "${FILESDIR}/${PN}-1.2.10-iconv.patch"
        fi
}
src_compile() {
...
        modules="mod_ratio:mod_readme"
        use codeconv && modules="${modules}:mod_codeconv"
...
}
Спасибо сказали:
Аватара пользователя
DeadFish
Сообщения: 71
ОС: Gentoo Linux

Re: cp1251 на ftp

Сообщение DeadFish »

Прикольно :thumbsup:
Надо будет поизучать структуру ebuild'ов, полезная вестчь.
Спасибо сказали: