现在的位置: 首页 > 综合 > 正文

GBK字符长度

2013年03月16日 ⁄ 综合 ⁄ 共 497字 ⁄ 字号 评论关闭

打出来的长度为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字符集里也有英文与数字字符, 但属于全角字符, 占用两具字节

抱歉!评论已关闭.