mysql - 重启后openfire mysql UTF-8编码失败

标签 mysql jdbc utf-8 openfire

我正在使用 jdbc 连接 openfire 和 mysql。在数据库连接 URL 中设置 characterEncoding=UTF-8 后一切正常,utf8 数据可以成功写入数据库。但是,每当 openfire 重新启动时,编码就不再有效,并且保存到数据库中的所有内容都变成“???”。

我在谷歌上搜索了很多,但我发现的所有内容(如 thisthis )主要是关于初始设置的教程,我已经成功了。我认为成功初始设置的关键是 [1] 在您的数据库中使用 utf-8 并且 [2] 在您的 JDBC 连接中使用 characterEncoding=UTF-8。问题是它在 openfire 重启后失败,我找不到任何解决方案。

如果有人对如何解决这个问题有任何想法,请提供帮助。我相信我不是唯一受此困扰的人。

最佳答案

我自己找到了解决方案。

原来是openfire.xml中保存的serverURL的转义问题。显然 & 字符被转义了两次并导致错误的 url:

<serverURL>jdbc:mysql://localhost:3306/avmcdb?rewriteBatchedStatements=true&amp;amp;characterEncoding=UTF-8</serverURL> 

应该是

<serverURL>jdbc:mysql://localhost:3306/avmcdb?rewriteBatchedStatements=true&amp;characterEncoding=UTF-8</serverURL> 

修改此行后重启openfire,一切正常。

关于mysql - 重启后openfire mysql UTF-8编码失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27225895/

相关文章:

java.sql.SQLException : Operation not allowed after ResultSet closed 异常

c# - StreamWriter 和 Encoding.UTF8.GetBytes 产生不同的结果

mysql - 为什么在MySQL 5 中运行脚本时start transaction 和rollback 无法回滚?

mysql - YII2 - 在 gridView 中处理 NULL 值 - 显示一列外键,其中一些可能为 NULL

php - 如何创建日志来跟踪 Excel 刷新

java - 使用 JDBC 从 mysql 中检索数据

php - JavaScript 数组搜索和 MySQL LIKE 查询哪个更有效?

java - 为什么使用 getter 函数代替 "?"时会出错

jsf - 在 JSF 1.2 中使用错误编码的 POST 参数

php - mysql utf8字符问题