龙空技术网

java JDBC获取mysql数据中文乱码之解决办法

Inn程序媛 452

前言:

此刻咱们对“mysqltext汉字”可能比较讲究,我们都需要剖析一些“mysqltext汉字”的相关内容。那么小编同时在网摘上网罗了一些有关“mysqltext汉字””的相关资讯,希望咱们能喜欢,咱们一起来了解一下吧!

今天在用jdbc访问mysql准备获取某个表的数据然后导出数据到一个txt文本文件中,遇到了一个问题,那就是文件生成后,我一打开,发现中文全部变成了“??”这样的乱码,如下:

这时我想到了用OutputStreamWriter时设置字符输出流的字符类型,如下

发现没有作用,然后我就在ResultSet 获取结果集的地方对有汉字的那一列进行输出,发现得到ResultSet得到的就是“??”乱码,然后我想到用字符串转码方式,也就是new String(a.getBytes("xxx"),"yyy") 这样,发现无济于事。

然后我进行了以下步骤:

1、查mysql字符编码

show variables like '%char%';

是utf8没错。

2、查表的创建语句

show create table bs_bookflow;

也是utf8没错。

3、最后发现用jdbc指定mysql连接时可以指定字符编码

url增加内容:useUnicode=true&characterEncoding=utf-8

再次尝试,发现终于不乱码了,

但是疑惑不解的是,为什么必须要在jdbc url中指定utf-8字符编码方式才能保证不乱码。

标签: #mysqltext汉字 #mysql数据库导入中文乱码 #mysqljdbc中文乱码