mysql中文乱码解决方式
近期项目使用到mysql。却突然出现了中文乱码问题。尝试了多种方案,最终解决乱码问题,总结一下解决方式,给遇到同样问题的人一点參考。
中文乱码的原因
1.安装mysqlserver的时候编码集设定有问题
2.创建数据库的时候编码集设定有问题
3.创建表的时候编码集设定有问题
4.client的编码集设定有问题
能够通过命令查看编码集:
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、client字符集的设定。通过连接字符串来设定。
jdbc:mysql://localhost:3306/testdb?
characterEncoding=utf8
posted on 2017-06-21 08:26 cynchanpin 阅读(1370) 评论(0) 编辑 收藏 举报