安装好了MySQL后没发现什么问题,直到今天写web项目,当servlet将数据写入MySQL数据库时出现了中文乱码,刚开始一直以为是jsp页面和servlet在传递时出现了问题,后来发现是MYSQL自身的编码格式出现了问题。
问题:当手动存入数据时,即使是中文也不会出现乱码,但是用Java连接MySQL并插入中文数据时出现乱码(全部是?)
解决办法:
查看MySQL编码方式
输入:show variables like 'character_set_%';
,
用红色方框圈出来的几项默认的是latin1,但是如果我们想更改默认的编码格式,比如我想更改为utf8,步骤如下:
一:找到MySQL安装目录下的配置信息文件my.ini;比如我的文件位置是:C:\Program Files\MySQL\MySQL Server 5.6,有时候会发现没有这个文件而是一个文件名为my-default.ini的文件,那么将这个文件备份后重命名为my.ini即可;
二:用记事本打开my.ini文件,在文件中添加如下内容:
[client]
default-character-set=gbk
[mysqld]
character-set-server=gbk
[mysql]
default-character-set=gbk
三:保存文件,重启MySQL,即可,此时再次查看MySQL的编码格式:
提示:如果在更改my.ini文件的时候出现保存失败或者拒绝访问的情况下可以先将这个文件复制到其他盘,更改好了之后再放回到原先的位置