С какой-то версии у популярного Jabber сервера Openfire (бывший Wildfire) появились проблемы с хранением в базе данных оффлайн сообщений и ростеров в симолах, отличных от латиницы. Не пишу, что проблема с конкретной кодировкой, потому что с проблемой столкнулись все пользователи - не только пользователи с кирилллицей.
Проблема решается следующим образом:
1. базу данных для Openfire необходимо создать с указанием кодировок
CREATE DATABASE `openfire` CHARACTER SET utf8 COLLATE utf8_general_ci;
2. в настройка openfire.xml в описании подключения к mysql необходимо добавить строки:
<database>
<defaultProvider>
<driver>com.mysql.jdbc.Driver</driver>
.................
.................
<mysql>
<useUnicode>true</useUnicode>
</mysql>
</defaultProvider>
</database>
3. oбязательно указать в настройках сервера MySQL в секциях [client] и [mysqld]:
default-character-set = utf8
UPD. На просторах Интернета нашел более изящный вариант:
jdbc:mysql://[your_host]/[database_name]?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
Комментариев нет:
Отправить комментарий