Java往MySQL数据库中写数据出现乱码

  1. 出现这个问题,无非以下几个原因:
    • 是否是java项目编码出现了问题,导致在java项目中写的SQL语句中的中文不能正确的识别
    • 是否是mysql中的数据库的编码方式出现了问题?
    • 而mysql数据库中的编码又分成好几部分:1)当使用Java连接mysql数据库的时候,我们使用的是网页连接,相当于服务器-客户端模式。2)当连接成功之后,我们使用的数据库和表也有一个字符类型。
      1. 分别检查即可知道问题出在哪里。
      2. 我们使用命令:show variables like 'character%'来查看字符集的编码设置。发现以下问题:
        Java往MySQL数据库中写数据出现乱码_Mysql
        这里的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

即可。