openfire 离线消息 中文乱码

openfire离线消息中文乱码,归根道理是mysql的乱码问题,可以连接到自己的数据库查询存储的数据。

解决方案:

第一步:

修改database的字符集

alter database openfire default character set utf8 default collate utf8_general_ci;

第二步

修改jdbc连接串:

如果是初始化openfire的时候,添加连接串

jdbc:mysql://127.0.0.1:3306/openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8

如果openfire已经初始化,需要修改openfire的配置文件,修改/opt/openfire/conf/openfire.xml,

jdbc:mysql://127.0.0.1:3306/openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8

第三步:

如果修改database和客户端连接串编码之后发现还有乱码,需要去查询整个mysql的编码集

show variables like 'character%';

如果发现

character_set_server 不是utf8编码,需要修改mysql的配置文件/etc/my.cnf

[client]标签加入

default-character-set=utf8

[mysqld]标签下加入

character-set-server=utf8

collation-server=utf8_general_ci

[mysql.server]标签加入

default-character-set=utf8

mysql 默认没有[client]标签和[mysql.server]标签,需要自己手动添加。


重启mysql

systemctl restart mysql

重启mysql之后执行:

show variables like 'character%';  发现所有编码集已经修改为utf8。

测试离线消息发现已经没有乱码,查询ofOffline表

你可能感兴趣的:(openfire 离线消息 中文乱码)