SSH 数据库乱码问题

最近玩的项目里面用的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 中文乱码问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,093评论 18 399
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,104评论 6 342
  • 一. Java基础部分.................................................
    wy_sure阅读 9,279评论 0 11
  • 陪伴的道路上,总是充满了惊心动魄。 即便有时候是虚惊一场,也足以让妈妈心疼半天。 刚才下楼,我在锁门,人家自己走路...
    Maymay999阅读 1,839评论 0 1
  • 说到自我稳定性与灵活度,我觉得自己两者都不够强。 自我稳定性,我其实是一个很容易被外界情绪所影响的人,所以相...
    合肥李风丽阅读 1,742评论 0 0