Mysql插入中文乱码问题解决


 

出现原因:

出现乱码的原因多数情况下是由于mysql安装时没有选择默认编码格式,软件默认编码格式为拉丁语,所以导致各种乱码。

另外要搞明白这点,UTF-8是通用编码格式,是国际通用标准编码格式,是可以兼容GBKgb2312格式的;GBK只是是中文编码格式,有的同学出现乱码后,着急将UTF-8编码格式修改为GBK格式,这是无用徒劳的。

解决办法:

目前解决Mysql使用中的乱码问题大致有三种解决办法:

1、在JDBC链接字符串中添加如下代码:

jdbc:mysql://localhost:3306/login?useUnicode=true&characterEncoding=utf-8;

 2、有的同学通过修改上述链接字符串依然无法解决问题,请按照如下方法尝试,下边的代码请打开mysql可视化软件(比如navicat),在对应的数据库下新建查询然后输入:

show variables like '%char%';

set names utf8;
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database =utf8;
set character_set_filesystem=utf8;
set character_set_filesystem=utf8;
set character_set_results =utf8;
set character_set_server =utf8;

 3、通过上述2步依然无法解决问题,那么请尝试下边的终极大招:

 若你的电脑已安装Mysql环境变量,直接进入cmd控制台,输入mysql命令后进入mysql的操作目录【如果没有安装环境变量,请手动进入到mysql的安装目录】,执行show variables like 'character_set_%'; 命令,可以看到如下界面,显示你的mysql当前的各种编码格式都不统一:

 接下来我们需要把默认的这几种编码格式做修改,打开Mysql的安装目录,找到 my.ini 文件,添加如下的代码:

[client]
default-character-set=UTF-8
[mysqld]
character-set-server=UTF-8
[mysql]
default-character-set=UTF-8

 

保存后,重启Mysql服务,再次输入show variables like 'character_set_%';命令可以看到Mysql默认的几种编码格式都改成了UTF-8。

补充说明:很多同学在使用第三步的方法时,发现无法打开mysql命令,修改my.ini文件后服务又无法重启,没法解决?请看下边的步骤:

进入你的mysql安装目录,找到 MySQLInstanceConfig.exe这个文件,运行它,一路点击next,直到“please select the default charset”页面,勾选第三个选项,设置编码格式为utf-8,然后一路next,完了后Mysql会自动重启服务,再次通过JDBC插入中文,就不会乱码了!

 

、、、