解决openfire在使用MySQL数据库后的中文乱码问题(转)
来源:互联网 发布:互联网大会2017 知乎 编辑:程序博客网 时间:2024/06/06 05:29
在实际使用时大家遇到最多的就是采用MySQL数据库后的中文乱码问题,这个问题十分有趣,而且从现象上可以看出openfire内部的一些机制。
实际问题是这样的:首先启动openfire服务器,然后利用客户端或直接登录到后台新建一个帐户,为该帐户指定一些中文的属性,如姓名等。如果不重启服务器,你永远不会觉得有什么不对的地方,因为所有的中文显示都是正常的。接下来重启一下openfire,再用建立的帐号登录客户端或进入后台管理端查看,会发现所有的中文全都变成了问号。登录到数据库中进行查看,发现所有的中文字符也均为问号,这说明了两个问题:
- openfire具有应用层缓存
- 数据库编码存在问题
解决办法其实也很简单,首先要保证你为openfire创建的数据库编码是utf8的,建表语句如下:
create database openfire default character setutf8 default collateutf8_general_ci
当你原来就创建好数据库时,你可以用:
alter database openfire default character set utf8 defaultcollate utf8_general_ci;
其次,在初始化openfire数据库,即第一次配置openfire服务器时,在连接数据库那里的连接串要加入字符编码格式,必须在连接里增加UTF8的编码要求,连接字符串设置如下:
jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8
如果已经安装完成,这个配置也是可以改动的,直接到openfire的安装目录下,找到conf/openfire.xml这样一个文件,打开找到如下的XML节,修改其中的serverURL即可
<database>
<defaultProvider>
<driver>com.mysql.jdbc.Driver</driver>
<serverURL>jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8</serverURL>
注意:由于&具有特殊含义,因此原&符号必须被转义为&
- 解决openfire在使用MySQL数据库后的中文乱码问题(转)
- 解决openfire在使用MySQL数据库后的中文乱码问题(转)
- 解决openfire在使用MySQL数据库后的中文乱码问题(转)
- 解决openfire在使用MySQL数据库后的中文乱码问题(转)
- 解决openfire在使用MySQL数据库后的中文乱码问题(转)
- 【openfire】解决openfire在使用MySQL数据库后的中文乱码问题
- 解决(Spark)openfire在使用MySQL数据库后的中文乱码问题
- 解决openfire在使用MySQL数据库后的中文乱码问题
- 解决openfire在使用MySQL数据库后的中文乱码问题
- 解决openfire在使用MySQL数据库后的中文乱码问题
- 解决openfire在使用MySQL数据库后的中文乱码问题
- 解决openfire在使用MySQL数据库后的中文乱码问题
- 解决openfire在使用MySQL数据库后的中文乱码问题
- 解决openfire在使用MySQL数据库后的中文乱码问题
- 解决openfire在使用MySQL数据库后的中文乱码问题
- 解决Openfire在使用mysql时的离线消息、昵称、备注等乱码问题
- mysql数据库中文乱码问题的解决
- 解决MySQL数据库的中文乱码问题
- Linux系统开机过程详解
- Hibernate工作原理及为什么要用?
- 常用知识点积累
- log4j.properties配置详解
- 单片机寄存器设置
- 解决openfire在使用MySQL数据库后的中文乱码问题(转)
- 移动五年,创业者眼中的变迁
- How to Modify a ATI Switchable G…
- ubuntu 12.04 bcm43xx无线网卡安装…
- How to sign a Driver by Windows …
- 使用Ubuntu Live CD修复Grub引导
- PlayReady Encrypt XAP 解密讨论
- 索引在数据结构上可以分为三种B树索引、位图索引和散列索引
- CE上可以递归创建目录的CreateDire…