字符编码、单字节字符编码、双字节字符编码、多字节字符编码

1、基础知识

计算机中储存的信息都是用二进制数表示的,用8位二进制来表示一个字节,这样一个字节就可以表示2的8次方(256)个字符,这样所有的英文字母,标点符号等就都可以被表示出来了,这就是最初的ASCII码,事实上ASCII码只用了127位。

字符集(Charset):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

字符编码(Character Encoding):是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表),与其他东西的一个集合(如二进制字节码)进行配对。即在符号集合与数字系统之间建立对应关系,它是信息处理的一项基本技术。通常人们用符号集合(一般情况下就是文字)来表达信息。而以计算机为基础的信息处理系统则是利用元件(硬件)不同状态的组合来存储和处理信息的。元件不同状态的组合能代表数字系统的数字,因此字符编码就是将符号转换为计算机可以接受的数字系统的数,称为数字代码。

单字节编码:一个字节就表示一个字符,比如典型的ASCII码中的所有字符都是单字节编码的

双字节编码:需要用两个字节来表示一个字符的编码,比如汉字的GBK,GB2312编码

多字节编码:需要用多个字节来表示一个字符的编码,比如Unicode,UTF-8编码

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

常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GBK字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。

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

ASCII编码:将ASCII字符集转换为计算机可以接受的数字系统的数的规则。使用7位(bits)表示一个字符,共128字符;但是7位编码的字符集只能支持128个字符,为了表示更多的欧洲常用字符对ASCII进行了扩展,ASCII扩展字符集使用8位(bits)表示一个字符,共256字符。ASCII字符集映射到数字编码规则。

GB2312字符集:用两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到 0xF7,后面一个字节(低字节)从0xA1到0xFE,这样我们就可以组合出大约7000多个简体汉字了。在这些编码里,还把数学符号、罗马希腊的字母、日文的假名们都编进去了,连在ASCII里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的"全角"字符,而原来在127号以下的那些就叫"半角"字符了。

GBK字符集:由于GB2312还是不够用,后来干脆不再要求低字节一定是127号之后的内码,只要第一个字节是大于127就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字符集里的内容。结果扩展之后的编码方案被称为 GBK 标准,GBK 包括了 GB2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号等。

GBK、GB2312编码:是将两个字节连在一起表示一个字符,这两个字节分别叫高字节和低字节,GBK的编码中只要高字节代表的字符大于127就表示该字符为汉字,GB2312编码中必须两个字节所标识的字符都大于127才标识这个字符为汉字。

Unicode字符集:Unicode 是基于通用字符集,它是用4个字节来表示一个字符,所以能把目前世界上所有的语言文字字符都表示出来。

Unicode字符编码:UTF-32/ UTF-16/ UTF-8是三种字符编码方案都属于Unicode字符编码,由于Unicode字符编码用4个字节表示一个字符会浪费很多空间,所以UTF-8编码采用一种变长编码规则,如一个英文字母a,只需要一个字节就可以,那么UTF-8编码中a还用一个字节,有些字符需要4个字节才能表示出来,就用4个字节来表示。注意在UTF-8编码中汉字是需要3个字节来表示的。





  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值