【问题标题】:openfire mysql UTF-8 encoding fails after restart重启后openfire mysql UTF-8编码失败
【发布时间】:2015-01-29 07:27:52
【问题描述】:

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

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

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

【问题讨论】:

    标签: mysql jdbc utf-8 openfire


    【解决方案1】:

    我自己找到了解决方案。

    原来是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后,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      • 2012-08-09
      • 2013-12-16
      • 1970-01-01
      相关资源
      最近更新 更多