当前位置:网站首页>Openfire在使用MySQL数据库后的中文乱码问题解决
Openfire在使用MySQL数据库后的中文乱码问题解决
2022-06-30 19:51:00 【星哥玩云】
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>
注意:由于&具有特殊含义,因此原&符号必须被转义为&
边栏推荐
- How unity pulls one of multiple components
- Taiwan SSS Xinchuang sss1700 replaces cmedia cm6533 24bit 96KHz USB audio codec chip
- GeoServer installation
- 小学期,第三场-下午:WEB_xxe
- VB的基本语法
- Audio and video architecture construction in the super video era | science and Intel jointly launched the second season of "architect growth plan"
- PM这样汇报工作,老板心甘情愿给你加薪
- exness:流动性系列-流动性清洗和反转、决策区间
- The prospectus of pelt medical was "invalid" for the second time in the Hong Kong stock exchange, and the listing plan was substantially delayed
- 操作系统面试题汇总(不定期更新)
猜你喜欢

Wechat applets - basics takes you to understand the life cycle of applets (2)

数据智能——DTCC2022!中国数据库技术大会即将开幕

Idle fish is hard to turn over

Kubernetes为什么会赢,容器圈的风云变幻!

以全栈全功能解决方案,应对多样工具复杂环境DevOps落地难题

The former king of fruit juice sold for 1.6 billion yuan

小学期,第三场-下午:WEB_sessionlfi

新出生的机器狗,打滚1小时后自己掌握走路,吴恩达开山大弟子最新成果
Django上传excel表格并将数据写入数据库的详细步骤

操作系统面试题汇总(不定期更新)
随机推荐
以全栈全功能解决方案,应对多样工具复杂环境DevOps落地难题
WeakSet
c语言数组截取,C# 字符串按数组截取方法(C/S)
Enterprise middle office planning and it architecture microservice transformation
操作系统面试题汇总(不定期更新)
Meeting, onemeeting, OK!
为什么一定要从DevOps走向BizDevOps?
Exness: liquidity series - liquidity cleaning and reversal, decision interval
C语言:hashTable
项目经理面试常见问题及回答技巧
Qt:qaxobject operation Excel
GeoServer安装
标配10个安全气囊,奇瑞艾瑞泽8安全防护无死角
Ten percent of the time, the tar command can't parse the English bracket "()" when decompressing the file
【ICLR 2021】半监督目标检测:Unbiased Teacher For Semi-Supervised Object Detection
“更福特、更中国”拨云见日,长安福特王牌产品订单过万
毕业季职场人
消灭Bug,开发者不可不知的几款Bug探索测试神器。
Filebeat custom indexes and fields
Tencent conference application market was officially launched, with more than 20 applications in the first batch