GBK字符长度

打出来的长度为12, 比上面的结果多了4个字节, 说明后面加上的两个中文字符每个字符长度为2, 这是符合预期的.
但为什么这里面英文与数字字符只占一个字节?
后来找到如下资料:
GBK亦采用双字节表示,总体编码范围为8140-FEFE,首字节在81-FE 之间,尾字节在40-FE 之间,剔除 xx7F一条线。总计23940 个码位,共收入21886个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号883 个。
-百度百科
字符有一字节和双字节编码,00–7F范围内是一位,和ASCII保持一致,此范围内严格上说有96个字符和32个控制符号。之后的双字节中,前一字节是双字节的第一位。总体上说第一字节的范围是81–FE(也就是不含80和FF),第二字节的一部分领域在40–FE,其他领域在80–FE。
-百度百科
从这里可以看出, 00-7F属于ASCII编码, 8140-FEFE才属于GBK编码, GBK编码支持与ASCII编码混编. 字符串中, 英文与数字字符属于ASCII编码, 故占用一个字节, 中文字符属于GBK编码, 故占用两个字节.
PS: 实际是GBK字符集里也有英文与数字字符, 但属于全角字符, 占用两具字节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值