首页 > 代码库 > Mysql基础之字符集与乱码

Mysql基础之字符集与乱码

原文: Mysql基础之字符集与乱码

Mysql的字符集设置非常灵活

可以设置服务器默认字符集

数据库默认字符集

表默认字符集

列字符集

如果某一个级别没有指定字符集,则继承上一级.

 

以表声明utf8为例:

存储的数据在表中,最终是utf8;


1:告诉服务器,我给你发送的数据是什么编码的? character_set_client

2:告诉转换器,转换成什么编码? Character_set_connection

3:查询的结果用什么编码? Character_set_results 

 

如果以上3者都为字符集N, 则可以简写为 set names N

 

 

 

推论什么时将会乱码?

1: client声明与事实不符

2:results与客户端页面不符的时候.

 

什么时间将会丢失数据?

Connetion和服务器的字符集比client小时.

校对集指字符集的排序规则

一种字符集可以有一个或多个排序规则.

Utf8为例我们默认使的utf8_general_ci 规则,也可以按二进制来排, utf8_bin

 

怎么样声明校对集?

Create table ()... Charset utf8 collate utf8_general_ci;

 

注意:声明的校对集必须是字符集合法的校对集.


Mysql基础之字符集与乱码