字符编码

QT学习笔记(1)—字符编码
GB2312、GBK、GB18030 这几种字符集的主要区别是什么?

ANSI 多字节编码

计算机采用高电平低电平分别表示10,因此数据的存储和运算用二进制表示,因此需要编码来指定哪些二进制表示哪个符号,因此出现 ASCLL

ASCLL单字节编码方案,指定7位(便准ASCLL码)或8位(扩展ASCLL码)组合来表示128或256种可能的字符。

标准ASCLL(0x00 ~ 0x7F):7位二进制数表示127位,最高位作奇偶校验,用来检验是否出现错误。
奇校验:一个字节中的1必须为奇,如果不是,则最高位填充1。
偶校验:一个字节中的1必须为偶,如果不是,则最高位填充1。

扩展ASCLL (0x80 ~ 0xFF):8位二进制数表示256位,扩展ASCLL码增加一些欧洲国家使用的特殊符号。
所有国家其前面 0 -127 相同,128 - 255 段可能不同国家的编码不一样,因为每个国家都用同一扩展部分表示自己的符号。

对于亚洲国家的文字,符号太多以至扩展的ASCLL码也无法表示全部字符,因此出现多字节编码,如简体中文的 GB2312,用两个字符表示一个汉字。

Unicode 系列编码

Unicode 百度百科
QT学习笔记(1)—字符编码
Unicode and Character Sets
Unicode web site
Byte Order Mark (BOM)
Unicode and You

不同地方对同一字段采用表示不同的的字符,因此有冲突,国际组织制定 Unicode 编码,也称国际码,对全球语言统一分配编码区间,解决不同语言的冲突。

Unicode 编码系统,分为编码方式实现方式

编码方式: Unicode用数字0-0x10FFFF来映射字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。
UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

Unicode字符集可以简写为UCS(Unicode Character Set)。
早期的Unicode标准有UCS-2、UCS-4的说法。UCS-2用两个字节编码,UCS-4用4个字节编码。

实现方式:

1

UTF-8

UTF-8 百度百科
Unicode 百度百科

以字节为单位对 Unicode 进行编码,针对不同范围的字符使用不同长度的编码:

1

UTF-8 编码无字节序问题:
为什么UTF-8没有字节序问题?

大端和小端字节序介绍:
Understanding Big and Little Endian Byte Order

UTF-16

Unicode Technical Site
UTF-8, UTF-16, UTF-32 & BOM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值