SSH 数据库乱码问题

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

        utf-8
        utf-8
        true

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

解决办法

  • 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,就不乱码了。
即使去掉这些配置也没关系

        utf-8
        utf-8
        true

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


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

hibernate hbm2ddl.import_files 中文乱码问题

你可能感兴趣的:(SSH 数据库乱码问题)