Java连接MySQL数据库,中文乱码问题

今天遇到了将数据存到MySQL数据库,出现中文乱码的问题,查了很多的网上的资料,一次次尝试才解决。整个人的头都大了,差点放弃,幸好坚持下来了,最终问题解决,非常高兴,怕自己忘了,记下来。

第一步;用eclipse调试工具DeBug检查传递到servlet的参数,是否出现乱码。

解决方法://在servlet中设置编码方式
request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

这一步很多人都知道的。

第二步:数据库插入中文乱码首先需要排除的问题是,MySQL的默认字符集和对应database的字符集是什么。

通常为了以后的兼容性,建议将整个MySQL的默认字符集都设置成utf-8。

可以使用以下命令查看默认字符集:

mysql> SHOW VARIABLES LIKE 'character%';  


我的默认的是这样的

Java连接MySQL数据库,中文乱码问题_第1张图片

最终要改成下面这样的

Java连接MySQL数据库,中文乱码问题_第2张图片

大家对照一下哪里不一样就把不一样的修改过来,下面是修改字符集的命令

mysql> set character_set_client=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_database=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_results=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_server=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_system=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_connection=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_database=utf8;
Query OK, 0 rows affected (0.01 sec)

mysql> set collation_server=utf8;

Query OK, 0 rows affected (0.01 sec)  

进行到了这里问题还没有解决

第三步:

jdbc:mysql://localhost:3306/shiliuxingbang?useUnicode=true&characterEncoding=utf-8


这是我们连接数据库用的url,后面的

?useUnicode=true&characterEncoding=utf-8

这里是关键,添加完这个以后数据库乱码问题解决。



你可能感兴趣的:(java)