JDBC连接mysql处理中文时乱码解决办法详解
JDBC连接mysql处理中文时乱码解决办法详解
近日,整合的项目需要跟一个比较老版本的mysql服务器连接,使用navicat查看,发现此mysql服务器貌似没有设置默认编码,而且从操作此mysql的部分php文件看,应该是使用的gb2312的编码,但是,直接使用jdbc操作,从库中读取出来的中文全都是乱码。
一开始,使用类似entity.setDepartName(new String(rs.getString("hg").getBytes("gbk"), "utf-8"));的方式,试图进行强制的编码转换,结果失败了,因为,无论采用何种方式,转出来的字符总是各种各样的乱码,只是每次乱的方式都不一样。比较郁闷。而且,此项目由于使用的其他的产品,无法在其中再加额外的类似过滤器之类的东西,所以这个问题不是很好处理。
使用navicat连接查询,没有问题,因此,试着将某个表导出sql,查看DDL中是否有关于编码的设置,结果让我很失望,编码这一块直接没写。于是,将导出的sql文件修改扩展名为html,使用IE打开,发现没有乱码,查看此时的编码格式果然是“gb2312”,但是,使用java强制的转码已无济于事。怎么办呢?
而且,此项目已运行多年,后期维护有些缺乏,my.ini文件也更是无法查看并修改的。
突然想起,mysql连接的时候可以加上参数,并且有些参数是指定编码的,这样是不是可以解决问题呢?
于是修改连接字符串(原值为:url="jdbc:mysql://192.168.18.254:3306/web_oa)为:
url="jdbc:mysql://192.168.18.254:3306/web_oa?useUnicode=true&characterEncoding=gbk"
重启应用,查看,OK!中文很正常。
问题解决。
这种方式其实是在连接时指定使用gbk的编码格式,从而避免客户端与服务端各自使用自己默认的编码格式交互,只要配置合适,不会出现乱码问题。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
- JDBC连接mysql处理中文时乱码的一种解决办法
- 【MySQL学习笔记】4:解决JDBC连接MySQL的query结果中文乱码问题
- 中文乱码--MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总
- java:jdbc连接数据插入中文数据乱码解决办法:
- java连接mysql时出现中文乱码的解决办法
- jdbc连接FreeBsd上的mysql数据库中文发生乱码的解决办法
- eclipse连接mysql插入中文乱码解决办法
- tomcat5.0+mysql配置JDBCRealm,DBCP,ssl,及中文乱码解决详解资料
- web 前端:连接mysql中文乱码问题的解决办法
- navicat8 连接mysql,查看UTF8中文乱码问题解决办法
- JAVA通过JDBC连接Mysql获取中文输出乱码解决方法
- tomcat5.0+mysql配置JDBCRealm,DBCP,ssl,及中文乱码解决详解
- 使用 Navicat 连接 MySQL ,已存在的数据库中 comment 中文信息乱码的解决办法
- JDBC-连接mysql查询数据时中文为空解决办法
- MAC中JDBC插入MYSQL中文乱码解决办法
- jdbc连接mysql中文乱码处理
- (转)MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
- Tomcat5.0+mysql配置JDBCRealm,DBCP,ssl,中文乱码处理
- Hibernate+MySQL中文乱码的解决办法
- Aqua Data Studio 连接Mysql乱码的解决办法