开发者学堂课程【SQL进阶及查询练习:Mysql编码】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/36
Mysql编码
内容简介:
一 :查看mysql数据库编码
二: 编码解释
三: 控制台乱码问题
四: 指定默认编码
1.查看mysql数据库编码
*SHOW VARIABLES LIKE"char:
2.编码解释
*character set client :Mysql使用该编码来解读客户端发送过来的数据,例如该码为UTF8,那么如果客户端发送过来的数据不是utf8,那么就会出现乱码
*character set result:Mysql会把数据转换成该编码后,再发送给客户端,例如该编码为UTF8,那么如果客户端不使用UTF来解读,那么就会出现乱码。其它编码只要支持中文即可,也就是说不能使用latin1。
3.控制台乱码问题
*插入或修改时出现乱码:
>这是因为cmd默认模式下使用GBK,而character set client不是GBK的原因。我们只需让这两个编码相同即可。
*查询出的数据为乱码:
>这是因为character set results不是GBK,而cmd默认使用GBK的原因。我们只需让这两个编码相同即可。
>因为修改cmd的编码不方便,所以我们去设置character set result:为GBK即可。
*设置变量的语句:
>set character set clsent-gbk:
> set character set clsent-gbk:
注意,设置变量只对当前连接有效,当退出窗口后,再次登录mysql,还需再次设置变量。为了一劳永逸,可以在my.ini中设置:
设置default-chararcter-set=gbk即可。
4. 指定默认编码
我们在安装mysql 时已经指定了默认编码为utf8,所以我们在创建数据库、创建表时都无需再次制定编码。
为了一劳永逸,可以在my.ini中设置:
设置charaster-set-server=utf8即可。
Character set client | ->mysql把客户端传递的数据都当成是utf8!一是他传给utf8,二是如果我们传递的是x,那么需要修改这个变量为eastes et. Datas.
Character set connection | utf8
Character set results | utf8 -->mysql发送给客户的数据都是utf8的,一是客户用utf8编码,二是如果客户端使用gbk来码,那么需要修改这个变量为
Character set serever | utf8
Character set system | utf8
Character setclient = utf8,,无论客户发的是什么的编码的数据,mysql都当是utf8的数据。
>若客户端发送的是GBK
>服务器会当成是utf8对待
>总结:必然乱码。
处理问题的手段有两种:
>让客户端发送utf8的数据(行不通)
>把character_set_client修改为gbk
Set character_set_client =gbk;-->只有在当前窗口内有效,所以关闭窗口后再打开,又回到utf8了。
Character_set_result = utf8 ,把数据用什么编码发送给客户端。
>若服务器发送给客户端的是utf8的数据
>客户端会把他当成gbk,因为小黑屏,只能显示gbk.
>总结:必然乱码。
处理问题有两种手段:
>让服务器发送gbk的数据
>让小黑屏使用utf8来解读(行不通)
My.in1
在总配置文件中进行执行,可以一劳永逸
[client]
Port=3306
[mysql]
Default-character-set = gbk /* 它可以一劳永逸!它可以修改三个变量: client、
Result、connectio