字符集

字符集的重点知识

我们只需要了解:

1.    常用字符集

2.    数据库中我们用什么字符集

英文字符集:

QQ截图20161009151258.png

ASCII

ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。
其中:
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

GBK

GBK 向下与 GB 2312 编码兼容。是中华人民共和国定义的汉字计算机编码规范。早期版本为GB2312。

Unicode

Unicode(统一码、万国码、单一码)Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。以满足跨语言、跨平台进行文本转换、处理的要求。

UTF-8

是一种针对Unicode的可变长度字符编码,也是万国码。因为UNICODE比ASCII占用大一倍的空间,而对ASCII来说高字节的0对他毫无用处。为了解决这个问题,就出现了一些中间格式的字符集,他们被称为通用转换格式,即UTF(Universal Transformation Format)

实际工作中要使用的编码

在中文中常用的字符集分为utf-8和GBK。

实际使用的如下:

QQ截图20161009151421.png

观察(图一)的特点你会发现,MySQL字符集由三个部份组成:
1.字符集 
2.语言
3.类型

最后的bin是指二进制字符集,后面的ci是指存储排序时不区分字符的大小写。

注意:
mysql在写utf-8的时候写的是utf8。不加中间的中横线。

(图一)

QQ截图20161009151437.png

1.关于MySQL字符集

MySQL的字符集支持(Character Set Support)有两个方面: 

 字符集(Character set)和排序方式(Collation)。

MySQL对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。

2.查看MySQL字符集

2.1.查看字符集的设置

mysql> show variables like 'character_set_%';

QQ截图20161009151450.png


2.2.查看字符集排序设置

mysql> show variables like 'collation_%';

QQ截图20161009151503.png


3.修改MySQL字符集

3.1修改服务器级别字符集

a.临时修改

mysql>SET GLOBAL character_set_server=utf8;

b.永久修改

 打开/etc/mysql/my.cnf,在[mysqld]后添加character-set-server=utf8

3.2修改数据库级 

a. 临时更改

mysql>SET GLOBAL character_set_database=utf8;

b. 永久更改

改了服务器级就可以了

3.3修改表级 

mysql>ALTER TABLE table_name DEFAULT CHARSET utf8;

更改了后永久生效

3.4修改列级修改示例

mysql>ALTER TABLE `products` CHANGE `products_model` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; 更改了后永久生效

3.5更改连接字符集

 a. 临时更改:mysql> SET GLOBAL character_set_client;

b. 永久更改:打开/etc/mysql/my.cnf,在[client]后添加default-character-set=utf8

 


继续学习
||
<?php echo "Hello Mysql"; ?>
提交重置代码