计算机中那些常用的字符编码

计算机是美国人发明的,所以还得从最原始说起。

ASCII编码

ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。占一个字节,只能包含128个符号,不能表示汉字。
常见ASCII码的大小规则:0-9<A-Z<a-z
1)数字比字母要小。
2)数字0比数字9要小,并按0到9顺序递增。
3)字母A比字母Z要小,并按A到Z顺序递增。
4)同个字母的大写字母比小写字母要小32。
’A‘为65, 'Z’为90; ‘a’为97,’z‘为122; ‘0’为 48,‘9’为57

ISO-8859-1

又称Latin-1或“西欧语言”,是国际标准化组织内ISO/IEC 8859的第一个8位字符集。是单字节编码,向下兼容ASCII。ISO-8859-1编码是一个8位的容器,ASCII编码是一个7位的容器。支持部分于欧洲使用的语言,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。
因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。这是个很重要的特性,MySQL数据库默认编码是Latin1就是利用了这个特性。

UNICODE

因为ascll不能表示其他国家的文字(如中文、日文、韩文等) ,为了统一所有文字的编码,国际组织制定Unicode(统一码、万国码、单一码)。Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。.分为17组编排,0x0000 至 0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。然而目前只用了少数平面。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

GBK

在此之前,和中文字库有关的编码标准有:国标GB码、GBK码、港台BIG-5码等,由于在使用过程中发现字不够用,于是中国国家标准总局发布了一套国家标准GB2312,由北大方正开发,共收录21003个汉字。后来又出现对于人名、古汉语等方面出现的罕用字,GB 2312不能处理,这导致了后来GBK及GB 18030汉字字符集的出现。
GBK 向下与 GB 2312 编码兼容,采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。共收录了21003个汉字。

UTF-8

由于UNICODE比ASCII占用大一倍的空间,而对ASCII来说高字节的0对他毫无用处。为了解决这个问题,就出现了一些中间格式的字符集,他们被称为通用转换格式,即UTF(Unicode Transformation Format)。常见的UTF格式有:UTF-7, UTF-7.5, UTF-8,UTF-16, 以及 UTF-32。
UTF-8编码是针对Unicode的一种可变长度字符编码,使用1-4个字节来存储一个字符,最大的特点是可变长度,最大长度是4个字节。从上表可以看出,4字节模板有21个x,即可以容纳21位二进制数字。
因为可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行很少修改后便可继续使用,所以UTF-8逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值