Mysql插入中文乱码问题解决
l 出现原因:
出现乱码的原因多数情况下是由于mysql安装时没有选择默认编码格式,软件默认编码格式为拉丁语,所以导致各种乱码。
另外要搞明白这点,UTF-8是通用编码格式,是国际通用标准编码格式,是可以兼容GBK或gb2312格式的;而GBK只是是中文编码格式,有的同学出现乱码后,着急将UTF-8编码格式修改为GBK格式,这是无用徒劳的。
l 解决办法:
目前解决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插入中文,就不会乱码了!
、、、