LINUX.ORG.RU
ФорумAdmin

proftpd кирилица


0

0

Помогите у меня система построена так, что все загрузки логируются в базу. Я потом читаю базу и произвожу операции на ними. Так вот русские файлы которые были залиты на сервер, даже не логируются. Как быть. Конечно было бы прикольно навешивать внешние скрипты на обработку, но mod_exec - какой-то неполноценный(работает только в chroot`e и так далее). Думаю перейти на pureftpd, выглядит заманчиво. И при авторизации умеет спрашивать у скрипта, и внешний скрипт может вызвать при успещной загрузке. Помогите. Я не админ, я программист, поэтому немного слабоват в этом деле.

UTF-8 в системе, UTF-8 в базе и драйверах к ней.
Напиши сейчас выхлоп «$locale» и какая база?

JFreeM ★★★☆
()
Ответ на: комментарий от JFreeM

Вы меня наставили на путь истинный. Я реально тупонул. Кодировка в базе и таблицах была latin. Поставил utf_8_general_ci и на таблицы и на базу. Файл стал логироваться но он имеет битое название. Я почти уверен что дело в кодировке соединения, надо бы сделать set CHARSET NAME. Но как установить кодировку соединения с базой у proftpd? БД - MySQL

valeraorg
() автор топика

Тут есть особвенности. фтп не предполагает задания кодировки файлов. Если в системе у вас стоит локаль ютф8, и, допустим, лежит файл с кириллическим названием и вы его можете прочитать, то это кириллица, закодированная в ютф8. Если виндовый клиент подключается по фтп какимнить тотал командером, он вместо виндовой кириллицы покажет кракозябры (постарается отобразить ютф8 кодировку в сп-1251). Если он зальет свой файл с кириллицей, то в систему он ляжет как файл с вообще некорректным названием (имя файла - некорректная строка в ютф8,а ведь система будет считать что именно в ютф8, ибо локаль). В итоге дело это геморное и муторное. нужно чтоб клиенты были ютф8. а мускуль уже несколько лет как в ютф8 по дефолту работает. наверно, что-то старенькое, типа, 4.0 у вас там..

azure ★★
()
Ответ на: комментарий от azure

хм

mysql всегда имела кодировку по дефолту родины ее создателей шведов. И по сей день тоже кодировка по умолчанию latin. База еще свежая из репов дебиана.

valeraorg
() автор топика
Ответ на: хм от valeraorg

И proftpd умеет конвертить при заливке из одной кодировки в другую, для этого его надо настроить.

valeraorg
() автор топика
Ответ на: хм от valeraorg

/etc/mysql/my.cnf

[mysqld]
character-set-server      = utf8
default-character-set      = utf8


в генту уже несколько лет так, дефолт.

azure ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.