天天看点

GB18030和GB2312

IPHONE上,发现我们的游戏在添加好友时,如果对方使用的是繁体字,则添加失败,提示“名字为空”。后来跟踪了下,发现是我们在把汉字转化成UTF8时,使用的是GB2312,因此转化失败~ 后面改成GB18030,问题解决~~

     主要原因是GB2312支持的汉字太少。。。。

      因此大概的查找了下关于GB2312和GB18030的资料,分享:

早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB2312和用 于繁体中文的big5。GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0- F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。

GB2312支持的汉字太少。

1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。

2000年的GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。

现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。

所以手机、MP3一般只支持GB2312。从ASCII、GB2312、GBK到GB18030,这 些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码 的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

继续阅读