`

解决openfire在使用MySQL数据库后的中文乱码问题(转)

 
阅读更多
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&amp;characterEncoding=utf8</serverURL>

注意:由于&具有特殊含义,因此原&符号必须被转义为&amp;
http://www.cnblogs.com/hannover/archive/2011/03/25/1995568.html
分享到:
评论

相关推荐

    Openfire在使用MySQL数据库后的中文乱码问题解决.docx

    在使用 MySQL 作为数据存储时,Openfire 用户经常遇到一个常见的问题,那就是中文字符显示为乱码。这个问题主要体现在以下几个方面: 1. 当用户通过 Openfire 客户端或后台管理系统创建包含中文属性的新账户时,...

    openfire 集成用户数据库

    ### Openfire集成用户数据库知识点详解 #### 一、引言 在企业级即时通讯系统部署过程中,为了确保数据的一致性和提高用户体验,通常会遇到一个关键需求:将Openfire服务器与现有的用户数据库进行集成。这样的集成...

    解决openfire 4.1中文乱码.docx

    在Openfire 4.1版本中,中文乱码问题可能会对使用中文字符的用户造成困扰。Openfire是一款基于Java的即时通讯服务器,它允许企业或组织建立自己的内部聊天和协作平台。当出现中文乱码时,这意味着服务器在处理中文...

    使用openfire登录android

    标题“使用openfire登录android”涉及的技术点主要是集成Openfire服务器和MySQL数据库,以及在Android平台上实现登录功能。Openfire是一款开源的即时通讯(Instant Messaging, IM)服务器,它基于XMPP(Extensible ...

    openfire聊天记录插件(含有数据库脚本)

    Openfire是一款开源的即时通讯服务器,它基于XMPP协议,可以提供实时通信和协作功能,如...通过合理地使用`chatLogs.jar`和`chatlogs_mysql.sql`,你可以为你的Openfire环境提供一个强大的聊天记录存储和检索解决方案。

    openfire 脚本文件

    openfire 脚本文件

    openfire管理平台问号解决

    openfire管理平台,有许多问号,很多朋友以为是乱码问题,其实不是乱码问题, 是因为:openfire_i18n_zh_CN.properties(国际化的中文版文件)和配置openfire_i18n_en.properties(国际化英文版文件)相比少了一些属性,取不到...

    openfire数据库表结构

    了解 Openfire 数据库的表结构是非常重要的,因为它可以帮助开发者更好地理解和使用 Openfire。 Openfire 数据库表结构主要包括以下几个方面: 1. 数据类型公约 Openfire 使用特殊的编码方式来存储日期数据,即将...

    openfire 数据库字典

    openfire自带数据库的字典,详细展示数据库的每个表的结构,并备注了每个字段的含义,对开发者有很好的帮助。

    即时通讯配置文档(OpenFire&Spark&MySQL).doc

    安装mysql-essential-5.1.55-win32.msi后,你需要创建一个专门供OpenFire使用的数据库,并设置一个强密码(例如111111)。在MySQL命令行客户端中,你可以用`CREATE DATABASE openfire;`创建数据库,然后使用`GRANT ...

    linux下openfire安装配置

    为了在Linux系统上成功安装并配置Openfire,我们需要遵循一系列步骤,涉及的主要组件包括JDK(Java Development Kit)和MySQL数据库。 首先,我们需要确保系统已经安装了Java运行环境。JDK是开发和运行Java应用程序...

    Openfire配置

    安装程序安装完成后,不要急于启动Openfire服务,而是需要先配置使用的数据库。具体来说,需要在MySQL数据库中创建一个名为openfire的数据库,并导入Openfire提供的数据库脚本。虽然官方文档建议导入自带的数据库...

    openfire+asmack中文api+androidDemo

    `Smack帮助文档中文版.rar`包含的文档将帮助开发者理解如何在Android应用中使用ASMACK,避免因兼容性问题而带来的困扰。 **Android Demo**,即`MyXmpp`,可能是一个演示应用,展示了如何使用Openfire服务器和ASMACK...

    Openfire安装部署

    你需要在数据库管理工具中运行这些脚本来初始化数据库。 总结,Openfire的安装部署涉及到多个步骤,包括下载安装、配置服务器信息、数据库集成以及安全设置。理解这些步骤并根据实际情况调整配置,将确保Openfire能...

    Openfire数据库架构指南(英文原版与中文翻译版)

    在翻译的文档中,你可能会发现一些从网上搜集的资料,这些资料可能提供了关于Openfire数据库架构的额外见解,例如如何配置数据库连接,或者解决特定问题的技巧。 总的来说,理解和掌握Openfire的数据库架构对于开发...

    openfire3.7.1 在linux下的详细安装配置文档.

    在本文档中,我们将详细介绍如何在Linux环境下,特别是CentOS 6系统上,安装和配置Openfire 3.7.1。Openfire是一款基于Java的实时通信服务器,它使用XMPP协议提供即时消息服务。首先,确保你的系统满足以下前提条件...

    openfire的相关资源

    在本文中,我们将深入探讨Openfire的相关资源,包括如何搭建、源码配置、编译运行以及解决常见问题。 一、Openfire的搭建 Openfire的搭建过程相对简单,但需要一些基本的Java环境和服务器管理知识。首先,你需要...

    ubuntu spark中文乱码解决方法.docx

    Ubuntu Spark 中文乱码解决方法是指在 Ubuntu 操作系统中使用 Spark 时遇到的中文乱码问题的解决方案。该问题是由于 Spark 自带的 JRE 中没有合适的中文字体所致。 解决 Spark 乱码的方法可以通过创建 fallback ...

    Mac 下搭建XMPP服务器之openfire

    1. 下载安装工具:首先需要在Mac上下载Openfire服务器软件、MySQL数据库和JDK(Java Development Kit)。Openfire和MySQL可以从官方网站或者其他可信赖的源下载,JDK同样需要确保来源的安全。 2. 安装环境: (1) ...

Global site tag (gtag.js) - Google Analytics