基础知识 合集

目录

一、字符编码


一、字符编码

ASCII编码:

使用7位二进制数表示128个字符。

这些字符包括英文字母(大写和小写)、数字、标点符号和一些控制字符。其中,大写字母的编码从0x41('A')到0x5A('Z'),小写字母的编码从0x61('a')到0x7A('z')。

一个字节表示一个字符,字符数据以ASCII码的形式存放在内存中。

GB2312和GBK编码:

GB2312是中国大陆地区早期采用的双字节字符集编码方式,用于存储简体中文。GBK是对GB2312的扩展,不仅包含简体中文,还囊括了繁体中文。

GB2312和GBK都使用双字节表示一个汉字,且都兼容ASCII编码。在存储中文字符时,GB2312的高低位都存放大于127的数字,而GBK的高位存放大于127的数字,低位则可能包含小于127的数字。

说明一下第二段话的意思:

GB2312编码是为简体中文设计的字符集编码,它使用双字节来表示一个汉字。在GB2312编码中,高位字节(第一个字节)的范围是0xA1到0xF7(即161到247的十进制),低位字节(第二个字节)的范围是0xA1到0xFE(即161到254的十进制)。这意味着,无论是高位还是低位,其值都大于127(即0x7F的十六进制值)。

举例:假设我们有一个汉字“中”,在GB2312编码中,它可能被编码为D6 D0(十六进制表示)。这里,D6是高位字节(大于127),D0是低位字节(也大于127)。

GBK编码是GB2312的扩展,它支持更多的汉字字符,包括简体和繁体中文。在GBK编码中,高位字节(第一个字节)的范围仍然是0x81到0xFE(与扩展ASCII编码的高位字节范围重叠),但低位字节的范围则扩展到0x40到0xFE(与ASCII编码的低位字节范围有部分重叠)。

举例:同样以汉字“中”为例,在GBK编码中,它可能仍然被编码为D6 D0(与GB2312相同),但GBK也允许其他编码方式。重要的是,GBK编码的高位字节总是大于127,但低位字节可能小于或等于127(与ASCII编码的字符值重叠)

Unicode编码

Unicode是一种用于表示世界上所有字符的标准编码方式,它为每个字符分配了一个唯一的数字码点。

Unicode编码使用16位(即2个字节)来统一表示所有的字符,包括ASCII中的字符。Unicode编码不与任何现有的编码方案保持兼容,因此从理论上来讲在进行文本转换时需要查表进行。

而在实际应用中,通常不需要手动进行查表和转换。许多编程语言和库都提供了现成的编码转换功能。例如,在Python中,可以使用encode()decode()方法对字符串进行编码和解码操作;在Java中,可以使用Charset类来进行编码转换。

BIG5编码:

BIG5编码是繁体中文社区中最常用的电脑汉字字符集标准,共收录13,060个汉字。

BIG5码是一套双字节字符集,使用了双八码存储方法,以两个字节来安放一个字。其“高位字节”使用了0x81-0xFE,“低位字节”使用了0x40-0x7E,及0xA1-0xFE。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值