字符集设置问题深究

1、基础知识

字符(Character):是文字和符号的总称。例如'A'、'B'、'汉'、'$'等。

字符集(Charset):是一个系统支持的所有抽象字符的集合。

字符编码(Character Encoding):是一套法则,描述字符集与数字系统之间建立对应关系。给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给字符'A'赋予数值0,给字符’B'赋予数值1,则0就是字符'A'的编码。

字符序(Collation):是指在同一字符集内字符之间的比较规则;确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系;每个字符序唯一对应一种字符集,但一个字符集可以对应多种字符序。


mysql字符序的命名规则:字符集名字_语言_后缀,
几种常见后缀:_ci(表示大小写不敏感)、_cs(表示大小写敏感)、_bin(表示按编码值比较)
例如:在字符序“utf8_general_ci”下,字符“a”和“A”是等价的;


2、常用字符集和字符编码

2.1.ASCII、Latin-1

ASCII字符集:主要包括控制字符(回车键、退格、换行键等);可显示字符(英文大小写字符、阿拉伯数字和西文符号)。

ASCII编码:将ASCII字符集转换为计算机可以接受的数字系统的数的规则。使用7位(bits)表示一个字符,共128字符;但是7位编码的字符集只能支持128个字符。


ISO-8859-1又称Latin-1:是一个8位单字节字符集,它把ASCII的最高位也利用起来,并兼容了ASCII,新增的理论空间是128,但它并没有完全用完。



2.2.GB2312、GBK

GB2312字符集:中国国家标准简体中文字符集,包括基本汉字,缺少罕用字。

GBK字符集:GB2312字符集的扩展,支持中国国内少数民族的文字,汉字收录范围包含繁体汉字以及日韩汉字。

GBK编码:采用多字节编码。


2.3.Unicode

Unicode字符集:世界上所有的符号纳入其中,每一个符号都给予一个独一无二的编码,以满足跨语言、跨平台进行文本转换、处理的要求。

Unicode编码:计算机一般使用 4个字节(32 位)(两个字节不够用时)来存放一个序号,该序号为每个字符在 UNICODE 字符集中的序号。


2.4.UTF

UTF:是Unicode 的实现(或存储)方式,称为Unicode转换格式。Unicode是字符集,UTF-32/ UTF-16/ UTF-8是三种字符编码方案。

UTF-8编码:是一种针对Unicode的可变长度字符编码,也是一种前缀码。

Utf-8 中文三个字节,英文一个字节 

Unicode 中文两个字节,英文两个字(不够用时4字节)

gb2312,gbk 中文两个字节,英文一个字节 


Unicode编码转换为UTF-8编码:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值