Java往MySQL数据库中写数据出现乱码
- 出现这个问题,无非以下几个原因:
- 是否是java项目编码出现了问题,导致在java项目中写的SQL语句中的中文不能正确的识别
- 是否是mysql中的数据库的编码方式出现了问题?
- 而mysql数据库中的编码又分成好几部分:1)当使用Java连接mysql数据库的时候,我们使用的是网页连接,相当于服务器-客户端模式。2)当连接成功之后,我们使用的数据库和表也有一个字符类型。
- 分别检查即可知道问题出在哪里。
- 我们使用命令:
show variables like 'character%'
来查看字符集的编码设置。发现以下问题:
这里的character_set_server与character_set_client都不是utf8模式,更改即可。若使用命令:set character_set_database=utf8
只对当前窗口有效,所以需要使用另外的一种方式。
进入mysql的安装目录,然后找到my-default.ini文件(如果之前修改过该文件,则直接修改my.ini)重命名为my.ini。在其中添加如下命令:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
character-set-client=utf8
即可。