美文网首页
SSH 数据库乱码问题

SSH 数据库乱码问题

作者: 枝头残月野狼嚎嗷嗷呜 | 来源:发表于2016-10-20 10:19 被阅读0次

最近玩的项目里面用的H2,Hibernate的import.sql里面插入了一条中文的数据,结果是乱码,搞了半天没有解决。网上关于H2连接相关的资料比较少,关于解决mysql乱码问题的文章比较多,于是把数据库切换到了mysql,但问题依然存在。
并且已经确定了mysql数据库的encoding、import.sql的encoding都是utf8。
包括hibernate配置文件中关于Mysql连接的配置

        <property name="hibernate.connection.CharSet">utf-8</property>
        <property name="hibernate.connection.characterEncoding">utf-8</property>
        <property name="hibernate.connection.useUnicode">true</property>

经过一番调查,终于解决了。

解决办法

  • step(1/2)
    eclipse菜单-Run-Run Configuration
    找到自己的WEB服务器,我用的是Tomcat v6.0
    右边TAB-Arguments-VM arguments
    这里最后面加入一个参数
    -Dfile.encoding=UTF8
    这是JVM的一个参数,代表JAVA读写文件时用的默认的encoding。
    关于参数的详细可以参考这篇
    Java -Dfile.encoding=UTF-8 遭遇乱码问题的来龙去脉
  • step(2/2)
    还是上面的Run Configuration菜单
    在右边TAB中招到common,然后Encoding
    这里默认是系统的字符集,改成UTF-8
    这个配置是用来修改eclipse console的encoding的。

修改完以后,再用hibernate导入import.sql,就不乱码了。
即使去掉这些配置也没关系

        <property name="hibernate.connection.CharSet">utf-8</property>
        <property name="hibernate.connection.characterEncoding">utf-8</property>
        <property name="hibernate.connection.useUnicode">true</property>

再切换回H2数据库,同样一切正常。


此次问题得以解决,得力于这篇文章

hibernate hbm2ddl.import_files 中文乱码问题

相关文章

网友评论

      本文标题:SSH 数据库乱码问题

      本文链接:https://www.haomeiwen.com/subject/xjdfuttx.html