Home  >  Article  >  Database  >  mysql中文乱码解决方案_MySQL

mysql中文乱码解决方案_MySQL

WBOY
WBOYOriginal
2016-06-01 11:52:321262browse

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

中文乱码的原因

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

<code class="hljs sql">show variables like "%char%";</code>

<img alt="这里写图片描述" src="http://img.bitscn.com/upimg/allimg/c150828/1440K005F6250-344L.jpg" title="\">

常用编码集

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

mysql编码集设置命令

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

<code class="hljs sql"><code class="hljs sql">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;</code></code>

<code class="hljs sql"><img alt="这里写图片描述" src="http://img.bitscn.com/upimg/allimg/c150828/1440K005R0310-4bK.jpg" title="\">

<code class="hljs sql">设定mysqlserver编码

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

<code class="hljs sql"><code class="hljs sql"><code class="hljs vbnet">net stop mysql</code></code></code>

<code class="hljs sql"><code class="hljs vbnet">4.卸载

<code class="hljs sql"><code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake">mysqld -remove</code></code></code></code>

<code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake">5.修改mysql的配置文件,在mysql安装目录下找到my.ini文件<br> <img alt="这里写图片描述" src="http://img.bitscn.com/upimg/allimg/c150828/1440K005W3440-5a62.jpg" title="\"><br> 修改配置文件,在配置文件中加入

<code class="hljs sql"><code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver">character-set-server=utf8</code></code></code></code></code>

<code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver">贴出我的配置文件

<code class="hljs sql"><code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex">[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 </code></code></code></code></code></code>

<code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex">我的配置文件下载地址:http://pan.baidu.com/s/1qW3hqri<br> <img alt="这里写图片描述" src="http://img.bitscn.com/upimg/allimg/c150828/1440K005a50-D330.jpg" title="\">

<code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex">6.安装

<code class="hljs sql"><code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex"><code class="hljs cmake">mysqld -install</code></code></code></code></code></code></code>

<code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex"><code class="hljs cmake">7.启动服务

<code class="hljs sql"><code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex"><code class="hljs cmake"><code class="hljs sql">net start mysql</code></code></code></code></code></code></code></code>

<code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex"><code class="hljs cmake"><code class="hljs sql"><img alt="mysql卸载、安装" src="http://img.bitscn.com/upimg/allimg/c150828/1440K0060T3P-I516.jpg" title="\">

<code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex"><code class="hljs cmake"><code class="hljs sql">创建时指定字符集

<code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex"><code class="hljs cmake"><code class="hljs sql">1.创建数据库时设定字符集

<code class="hljs sql"><code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex"><code class="hljs cmake"><code class="hljs sql"><code class="hljs sql">create database testdb default character set utf8;#建立数据库</code></code></code></code></code></code></code></code></code>

<code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex"><code class="hljs cmake"><code class="hljs sql"><code class="hljs sql">2.创建表时设定字符集

<code class="hljs sql"><code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex"><code class="hljs cmake"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql">use testdb;
create table student(
    id char(50) primary key,
    sname varchar(100) not null,
    age int 

)engine=innodb default charset=utf8;</code></code></code></code></code></code></code></code></code></code>

<code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex"><code class="hljs cmake"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql">3、客户端字符集的设定,通过连接字符串来设定。

<code class="hljs sql"><code class="hljs sql"><code class="hljs vbnet"><code class="hljs cmake"><code class="hljs livecodeserver"><code class="hljs tex"><code class="hljs cmake"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql"><code class="hljs fix">jdbc:mysql://localhost:3306/testdb?characterEncoding=utf8</code></code></code></code></code></code></code></code></code></code></code>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn