文章转自:https://blog.csdn.net/hellosweet1/article/details/81673152
之所以会出现乱码,就是编码方式不一致导致的
我们应该首先确定
1. eclipse和mysql数据库中的编码方式是否一致
2. 在链接数据时,有没有在url里面加上characterEncoding=utf8,也就是下图这样
如果都解决了基本就没有问题了。
但是我"确定"了以上的方式都没问题,还是出现乱码
链接数据库的时候也加上了编码方式,但是还是会乱码,一定还是编码方式不一致导致的。eclipse的编码方式和数据库的编码方式都是一样的,但是原因到底是怎么回事,为什么一直不行,我就在数据库下面查询了各个编码方式如下:
发现确实数据的编码方式为utf8
把character_set_connection设为utf8编码发现还是不行
然后发现character_set_client和character_set_results编码方式都为latin1,接下来,我直接把两个的编码方式都设为gbk
再次运行java代码,然后在数据库中查看
发现插入数据的内容正常了,但是之前插入的数据内容的就出现乱码,毕竟上面插入内容的时候编码方式和现在不一样,所以问题到此就结束啦~~~~~~~~~~
注意:设置变量只对当前连接有效,当退出窗口后,再次登录mysql,还需要再次设置变量。
注:以前2个来确定,可以使用set names utf8,set names gbk设置默认的编码格式;
执行SET NAMES utf8的效果等同于同时设定如下:
SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';
指定默认编码(一劳永逸解决办法)
在my.ini(MySQL安装目录里)中设置character-set-server=utf8即可,它可以修改三个变量:client、results、connection。
原文链接:https://blog.csdn.net/hellosweet1/article/details/81673152