mysql字符集总结

一. mysql字符集类型

mysql服务器中有六个关键位置使用了字符集的概念,他们是:client 、connection、database、results、server 、system。

a、其中client是客户端使用的字符集,相当于网页中的字符集设置如下<meta http-equiv="Content-Type" content="text/html; charset=utf-8">。    
b、其中的connection是连接数据库的字符集设置类型,如果php没有指明连接数据库使用的字符集类型,就按照服务器端默认的字符集设置。
c、其中database是数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。
d、results是数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。    
e、server是服务器安装时指定的默认字符集设定。
f、 system是数据库系统使用的字符集设定。

PS:
1. system一般默认是utf-8字符集,server是最高的字符集设定,database没有单独设定就按照server的字符集设定,其他都是按照server的设定设置字符集。
2. 数据库内的每个表和字段也都有字符集的概念,一般都是根据上一级结构决定自身的字符集,比如表就根据database库的设定决定自己的字符集,字段根据表来决定自己的字符集。

二. 统一字符集的方法:(以utf-8字符集来进行安装)
1. 要彻底解决字符集的方法就是让mysql在安装的时候就是用utf-8的字符集设定(默认为latin1),这样可以使上面的六个关键点的编码都为utf-8。
2. 使用STATUS命令查看mysql中各个类别字符集的状态。
    也可用SHOW VARIABLES LIKE 'character_set_%' 查看字符集的一些设置情况。

三. 若mysql在安装时的字符集设置为latin1,可以在建库时,指定数据库的字符集为utf8。
CREATE DATABASE qss DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

原文地址:https://www.cnblogs.com/kekec/p/1556071.html