LINUX.ORG.RU
решено ФорумAdmin

OpenFire и проблема с коридовкой

 , ,


0

1

Исходная задача: перенос OpenFire версии 3.8.2 с Ubuntu 10.04 на Ubuntu 16.04 с повышением версии Java и OpenFire.

Поставил: Ubuntu 16.04, mysql-server, Java8 и OpenFire 4.0.3.

Так как PHPMyAdmin`а на этой машине не должно быть - всю настройку SQL делал из консоли: создал пользователя и выдал ему права, создал базу, в свойствах которой явно указал использовать кодировку utf8. Настраивая OpenFire на соединение с SQL так же указал параметры: useUnicode - true, characterEncoding и characterSetResults - UTF-8. После успешного старта OpenFire я проверил, что таблицы в БД создаются в UTF8. Так как таблицы пользователей в моих версиях OpenFire отличаютя - я был вынужден написать большой SQL-запрос, который заполняет новый Jabber-сервер пользователями и группами (в качестве инструмента для работы с БД я выбрал MySQL Workbench). Ну всё, осталось только дать себе права админа.

Иду в web-морду, даю права, и вот тут-то я заметил, что ФИО пользователя в базе данных превратилось в вопросы. Количество вопросительных знаков не удвоено и точно равно количеству кирилических символов. В браузере вся кириллица отображается нормально (как выяснилось позже, это из-за кэширования страницы: после очистки кэша вместо кириллического ФИО остаются вопросы).

Проверяю базу и таблицы - всё в кодировке UTF8. Проверяю HTML - там явно указана кодировка. Пробовал три браузера: фокс, опера на престо и хром: все трое видят в web-консоли кодировку UTF8 и общаются с сервером именно на ней. Данная проблема воспроизводится при работе с любым полем ввода, в которое попадает символ кириллицы.

Подскажите, пожалуйста, куда рыть в поиске решения проблемы?

★★

Последнее исправление: zzdnx (всего исправлений: 1)

Ответ на: комментарий от thesis

В яблочко!

В файле /etc/openfire/openfire.xml записывается URL для подключения к базе MySQL, который указывается при начальной настройке через Web-морду.

К сожалению, парсер Web-морды работает с ошибкой и сохраняет символ амперсанда (&) в URL не правильно:

&
, из-за чего не работают параметры, передаваемые базе через этот URL.

Решение:

# В файле /etc/openfire/openfire.xml
# найти <serverURL> и заменить:
&amp;amp;
# на
&amp;
# после чего перезапустить OpenFire

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