环境:
IDEA
Navicat for Mysql
mysql 5.7
今天在学习mybatis的相关操作时,遇到了insert操作时出现中文乱码的问题
首先大家都知道这是一个字符集编码的冲突问题
于是我将所有的编码全部修改为了utf8
关键让人纳闷的是:修改之后mysql的编码和数据库以及数据库对应表的各个列的字符集编码都是utf8,然而运行代码插入时都是乱码!!!但是在客户端自己写insert语句却不会出现乱码!!!(wsl~)
所以我就iu纳闷了~~~~
好吧,最后试了好多次,发现是上面的字符集修改之后,是只能在这次打开的生命周期内有效,下次重启客户端之后,字符集又变回原来的gbk了!!!
(修改mysql的字符集编码要在配置文件my.ini中修改)
解决方案:
我并未去my.ini中修改为utf8
而是在idea连接数据库的url中添加了字符集编码设置为utf8:
(注意:在xml中不能直接识别&符号,而是要识别&为&符号)
形象的来说,相当于:在代码中传入的数据是gbk,但是连接数据库之后将数据转换成utf8即成功了
(不得不感慨swtc!!!,以前类似的问题也遇到了很多次,但解决后都没有系统的总结,所以这次就小小的总结了一下····)