openfire是一个非常不错的IM服务器,而且是纯Java实现,具有多个平台的版本,他的数据存储可以采用多种数据库,如MySQL,Oracle等。
在实际使用时大家遇到最多的就是采用MySQL数据库后的中文乱码问题,这个问题十分有趣,而且从现象上可以看出openfire内部的一些机制。
实际问题是这样的:首先启动openfire服务器,然后利用客户端或直接登录到后台新建一个帐户,为该帐户指定一些中文的属性,如姓名等。如果不重启服务器,你永远不会觉得有什么不对的地方,因为所有的中文显示都是正常的。接下来重启一下openfire,再用建立的帐号登录客户端或进入后台管理端查看,会发现所有的中文全都变成了问号。登录到数据库中进行查看,发现所有的中文字符也均为问号,这说明了两个问题:
openfire具有应用层缓存
数据库编码存在问题
解决办法其实也很简单,首先要保证你为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即可
<database>
<defaultProvider>
<driver>com.mysql.jdbc.Driver</driver>
<serverURL>jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8</serverURL>
注意:由于&具有特殊含义,因此原&符号必须被转义为&
http://www.cnblogs.com/hannover/archive/2011/03/25/1995568.html
分享到:
相关推荐
Openfire在使用MySQL数据库后的中文乱码问题解决.docx
实现openfire与用户数据库集成 实现用户认证、用户查询
解决openfire 4.1中文乱码.docx
openfire 脚本文件
openfire管理平台,有许多问号,很多朋友以为是乱码问题,其实不是乱码问题, 是因为:openfire_i18n_zh_CN.properties(国际化的中文版文件)和配置openfire_i18n_en.properties(国际化英文版文件)相比少了一些属性,取不到...
openfire自带数据库的字典,详细展示数据库的每个表的结构,并备注了每个字段的含义,对开发者有很好的帮助。
Openfire二次开发问题分析及解决资料,列举了二次开发过程中可能会遇到的问题及解决的把办法。
openfire聊天记录插件,含有mysql脚本,安装插件前现根据提供的mysql脚本建个表(其他数据库可根据mysql的样式自己建,很简单)
该 openfire 版本最好匹配 MySQL 5.7 的版本使用, 如果用 MySQL 8.0 以上的版本, 可能在配置 openfire 服务器时连接不上 MySQL 数据库
数据库字典,想了解的朋友。这个真的不错。openfire再次开发必备资料。
openfire使用hazelCast集群
openfire3.6.3插件开发方法说明: winxp/myeclipse6.5/jdk1.5&1.6/mysql5.0/openfire3.6.3 开发步骤:1. 布署openfire3.6.3源码(请参考openfire3.6.3导入eclipse项目实现方法)
使用openfire和mysql,在android端建立连接,登录功能的实现,至于注册用户,是在openfire里实现的
详细列出了即时通信服务端openfire数据库的表结构,包括表名字段名,字段属性,主外键等等
openfire数据库模式指南,列出了其所有数据库表结构及说明
MySQL:Mysql 5.1 Openfire: openfire-3.7.1-1.i386.rpm Connection manager: connection_manager_3_6_3.zip Clustering: clustering.jar(1.2.1) Oracle Coherence Version 3.3.1/389 整个过程详细配置...
XMPP+Openfire4.5.1+Smack4.3.4+MySql,支持手机对手机,手机对PC(Spark)的消息收发
浅显易懂地介绍xmpp与openfire开源项目的使用
解决Openfire strophejs网站 跨域访问问题,文件中有flXHR.js、strophe.flxhr.js跨域脚本,有个具体实例basic.html供参考
一套即时通讯demo