MySQL, Jabberd2 - иероглифы в списке контактов Mirand'ы

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
St@yt
ефрейтор
Сообщения: 60
Зарегистрирован: 2010-01-09 2:27:39

MySQL, Jabberd2 - иероглифы в списке контактов Mirand'ы

Непрочитанное сообщение St@yt » 2012-12-20 17:14:41

привет всем!...
есть проблема - неправильное отображение списка контактов и групп в Миранде.

имеем

клиент ОС - win xp sp3 рус.
миранда - v0.10.9.0 unicod
миранда - v0.6.3 unicod

сервер

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

# uname -a
FreeBSD xxxx 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Tue Dec 11 12:22:29 EET 2012     
#
 pkg_info | grep jabber
jabberd-2.2.16_3    Online presence and instant messaging server

# pkg_info | grep mysql-server
mysql-server-5.1.58 Multithreaded SQL database (server)

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

# cat /var/db/mysql/my.cnf
[mysqld]
skip_networking
log = /var/log/mysql.log
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
skip-character-set-client-handshake

[mysql]
 default-character-set=utf8

[mysqldump]
 default-character-set=utf8

[client]
 default-character-set=utf8

[jabberd]
 default-character-set=utf8

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

mysql> use jabberd2
mysql> show variables like "char%";
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | utf8                             |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.01 sec)
базу списка пользователей заполняю с помощю скрипта (текстовый файл) - удобно.
скрипт в кодировке:

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

file -i myjabber
myjabber: text/x-shellscript; charset=iso-8859-1
но

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

# enca -L none myjabber
Unrecognized encoding

при внесении в базу имен и названий групп (русский текст), срипт конвертирует строки, так:

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

Name=$(echo $TNAME | iconv -f ISO-8859-1 -t UTF-8)
и уже переконвертированную стороку вносит в нужное поле. например:

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

mysql> select charset('group') from `roster-groups` LIMIT 3 ;
+------------------+
| charset('group') |
+------------------+
| utf8             |
| utf8             |
| utf8             |
+------------------+

mysql> select `group` from `roster-groups` LIMIT 3 ;
+--------------------+
| group              |
+--------------------+
| ???????????? ????? |
| ???????????? ????? |
| ???????????? ????? |
+--------------------+
3 rows in set (0.01 sec)

3 rows in set (0.00 sec)

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

mysql> select charset('name') from `roster-items` LIMIT 3 ;
+-----------------+
| charset('name') |
+-----------------+
| utf8            |
| utf8            |
| utf8            |
+-----------------+
3 rows in set (0.00 sec)

mysql> select name from `roster-items` LIMIT 3 ;
+-------------------------------+
| name                          |
+-------------------------------+
| ??? ???? ??? (???????)        |
| ????. ????????????? (???????) |
| ?????? ?.?.                   |
+-------------------------------+
3 rows in set (0.00 sec)
это все отображается из putty в кодировке KOI8-R
после заполнения таблиц базы, запускаю миранду, она тянет из баз сервера список групп и контактов. отображается вопросиками также как выше в базах.

перепробовал разные комбинации хранения и конвертации кодировок в базе. каждый раз миранда показывает нечитабельный бред....

кто может подсказать что можно попробовать?..
я думаю что это миранда, локально как-то не в той кодировке записывает инфо полученную из баз MySQL.
пытался в настройках менять шрифты всякие - не помогло.. (может не там менял?) подскажите где...

занимательно то, что это все - работало на старом сервере и с помощью того же скрипта заполнялась база. и миранда все нормально отображала.
предыдущие рабочие версии ПО:
клиент ОС - win xp sp3 рус.
миранда - v0.6.3 unicod

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

# uname -a
FreeBSD xxx 6.1-RELEASE FreeBSD 6.1-RELEASE #15: Tue Feb 24 14:52:01 EET 2009
# pkg_info |grep mysql-server
mysql-server-5.0.27 Multithreaded SQL database (server)
# pkg_info | grep jabber
jabberd-2.0.11_2    Online presence and instant messaging server
пробовал устанавливать настройки mysql такие же как и на старом серваке - не помогает...
что то я пропустил.... не пойму что...

если нужна какая нить еще инфа - спрашивайте скину...

заранее спасибо за помощь.
столько дел!!!... неуспеваю на все забить...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

PYO
сержант
Сообщения: 187
Зарегистрирован: 2011-08-18 12:46:45

Re: MySQL, Jabberd2 - иероглифы в списке контактов Mirand'ы

Непрочитанное сообщение PYO » 2012-12-20 17:18:20

Name=$(echo $TNAME | iconv -f ISO-8859-1 -t UTF-8)
Не здесь ошибка?

Аватара пользователя
St@yt
ефрейтор
Сообщения: 60
Зарегистрирован: 2010-01-09 2:27:39

Re: MySQL, Jabberd2 - иероглифы в списке контактов Mirand'ы

Непрочитанное сообщение St@yt » 2012-12-20 17:23:43

сам скрипт работает правильно
пробовал разные комбинации например : koi8r -> utf8 и другие.... непомогает.... :(

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

PYO
сержант
Сообщения: 187
Зарегистрирован: 2011-08-18 12:46:45

Re: MySQL, Jabberd2 - иероглифы в списке контактов Mirand'ы

Непрочитанное сообщение PYO » 2012-12-20 17:43:24

А в какой кодировке исходные данные?

Аватара пользователя
St@yt
ефрейтор
Сообщения: 60
Зарегистрирован: 2010-01-09 2:27:39

Re: MySQL, Jabberd2 - иероглифы в списке контактов Mirand'ы

Непрочитанное сообщение St@yt » 2012-12-20 23:47:28

открываю вайл в putty (translation koi8-r) - русский текст отображается нормально...

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

#file -i myjabber
myjabber: text/x-shellscript; charset=iso-8859-1
значит ли это что русские буквы в файле в кодировке iso-8859-1 ?.... но учитывая что
шрифты операционки на новом серваке настроена так же как и на старом :

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

#cat /etc/rc.conf
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
keyrate="fast"
saver="warp"
scrnmap="koi8-r2cp866"
keymap="ru.koi8-r"
думаю в скрипите весь русский текст в koi8-r.

кстати в скрипте на старом серваке перекодировка идет

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

Name=$(echo $TNAME | iconv -f KOI8-RU -t UTF-8)
а база хранит текст в latin1 (как по умолчанию)
но я и на новом так же пробовал.... все равно миранда кракозябры показывает.
столько дел!!!... неуспеваю на все забить...