openfire mysql乱码_解决openfire在使用MySQL数据库后的中文乱码问题

在使用Openfire时遇到离线消息显示为问号的状况,通过检查发现是MySQL数据库编码问题。解决方案包括确保数据库和表的编码为UTF8,以及在数据库连接字符串中指定UTF8编码。如果已安装,需要修改openfire.xml配置文件。如果数据库已有大量数据,重新安装并设定正确编码是避免乱码的最佳方法。
摘要由CSDN通过智能技术生成

使用openfire时,突然发现我的离线消息中文变成了问号,而在线的消息却很正常,于是去看数据库ofofline那个数据库,因为他是记录离线消息的,发现里面存的就是乱码,这就肯定是Mysql数据库的问题了。于是网上找,发现这个还挺全http://nopainnogain.javaeye.com/blog/737361;其提出

解决办法其实也很简单,首先要保证你为openfire创建的数据库编码是utf8的,建表语句如下:

create database openfire

default character set utf8

default collate utf8_general_ci

当你原来就创建好数据库时,你可以用:

alter database openfire default character set utf8 default

collate utf8_general_ci;

其次,在初始化openfire数据库,即第一次配置openfire服务器时,在连接数据库那里的连接串要加入字符编码格式,必须在连接里增加UTF8的编码要求,连接字符串设置如下:

jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8

如果已经安装完成,这个配置也是可以改动的,直接到openfire的安装目录下,找到conf/openfire.xml这样一个文件,打开找到如下的XML节,修改其中的serverURL即可

com.mysql.jdbc.Driver

jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8

注意:由于&具有特殊含义,因此原&符号必须被转义为&

我直接搞了首先,没好,又改了其次,发现就根本不往数据库里写了,我靠我郁闷了,于是我觉得其次应该是有问题的,后来直接改了maysql的配置,不用默认的编码用utf-8编码,重写安装openfire就ok了,但是如果是已经有很多数据你再去安装那不是要奔溃了吗,于是

结论:安装数据库的时候最好直接把编码改为utf-8的,这样创建database、table和字段就会按默认的编码进行编码。这样就不会出现这样中文乱码的问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值