码迷,mamicode.com
首页 > 数据库 > 详细

mysql中文乱码解决方案

时间:2015-08-17 14:01:51      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:中文乱码   mysql   字符集设置   utf8   

最近项目使用到mysql,却突然出现了中文乱码问题,尝试了多种方案,终于解决乱码问题,总结一下解决方案,给遇到相同问题的人一点参考。

中文乱码的原因

1.安装mysqlserver的时候编码集设定有问题
2.创建数据库的时候编码集设定有问题
3.创建表的时候编码集设定有问题
4.客户端的编码集设定有问题
可以通过命令查看编码集:

show variables like "%char%";

技术分享

常用编码集

1.java中的常用编码UTF-8;GBK;GB2312;ISO-8859-1;
2.对应mysql数据库中的编码utf8;gbk;gb2312;latin1
建议使用utf8格式,utf8可以兼容世界上所有字符

mysql编码集设置命令

注意:如果不是通过my.ini配置文件设置的内容,只在当前状态下有效,当重启数据库服务后失效。所以如果想要不出现乱码只有修改my.ini文件,数据库编码可以在创建数据库时候指定UTF8

mysql设置编码命令

SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;

SET collation_connection = utf8_bin;
SET collation_database = utf8_bin;
SET collation_server = utf8_bin;

技术分享

设定mysqlserver编码

设定mysqlserver的编码,需要重新安装mysql服务,过程如下:
1.打开命令提示符(管理员),如果不以管理员身份运行可能会出现错误
2.进入mysql安装目录下的bin目录
3.关闭服务

net stop mysql

4.卸载

mysqld -remove

5.修改mysql的配置文件,在mysql安装目录下找到my.ini文件
技术分享
修改配置文件,在配置文件中加入

character-set-server=utf8

贴出我的配置文件

[mysqld]
#设置字符集
character-set-server=utf8 
#这里把路径改改为你的mysql安装目录
basedir=D:\develeper\mysql5.6 
datadir=D:\develeper\mysql5.6\data

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

我的配置文件下载地址:http://pan.baidu.com/s/1qW3hqri
技术分享

6.安装

mysqld -install

7.启动服务

net start mysql

技术分享

创建时指定字符集

1.创建数据库时设定字符集

create database testdb default character set utf8;#建立数据库

2.创建表时设定字符集

use testdb;
create table student(
    id char(50) primary key,
    sname varchar(100) not null,
    age int 

)engine=innodb default charset=utf8;

3、客户端字符集的设定,通过连接字符串来设定。

jdbc:mysql://localhost:3306/testdb?characterEncoding=utf8

版权声明:本文为博主原创文章,未经博主允许不得转载。

mysql中文乱码解决方案

标签:中文乱码   mysql   字符集设置   utf8   

原文地址:http://blog.csdn.net/q5841818/article/details/47723825

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!