奇数个汉字GBK编码,转UTF-8编码 str1=new String(str1.getBytes(\"UTF-8\"),\"GBK\");按你的测试过程,这一步已经丢字符了,出现问号了。如果接受到的数据,是UTF-8编码的字节流,那么应该按UTF-8还原为字符,然后再getBytes(\"GBK\")转为GBK字节流~
字符编码的GBK GBK即汉字内码扩展规范,K为扩展的汉语拼音中“扩”字的声母。英文全称Chinese Internal Code Specification。GBK编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。GB2312码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集—基本集》,1980年由国家标准总局发布。基本集共收入汉字6763个和非汉字图形字符682个,通行于中国大陆。新加坡等地也使用此编码。GBK是对GB2312-80的扩展,也就是CP936字码表(Code Page 936)的扩展(之前CP936和GB 2312-80一模一样)。GB 2312的出现,基本满足了汉字的计算机处理需要,但对于人名、古汉语等方面出现的罕用字,GB 2312不能处理,这导致了后来GBK及GB 18030汉字字符集的出现。GBK采用双字节表示,总体编码范围为8140-FEFE,首字节在81-FE 之间,尾字节在40-FE 之间,剔除 xx7F一条线。总计23940 个码位,共收入21886个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号883 个。P-Windows3.2和苹果OS以GB2312为基本汉字编码,Windows 95/98则以GBK为基本汉字编码。有些汉字用五笔和拼音都打不出来,如:溙(五笔IDWI),须调出GBK字符集。
gbk编码和gb2312编码的区别 gb2312编码大约包含6000多汉字(2113不包括特殊字5261符),编码范围为第一位4102b0-f7,第二位1653编码范围为a1-fe(第一位为cf时,第二位为a1-d3),计算一下汉字个数为6762个汉字。当然还有其他的字符。包括控制键和其他字符大约7573个字符编码gbk编码是对gb2312编码的扩充,容纳的汉字更多,但仅仅是扩充,没有质的变化。保留了所有gb2312编码,在此基础上进行编码范围的扩充.容纳(包含特殊字符)共22014个字符编码.gb18030编码是在gbk编码基础上的扩充,因为汉字更多,仅仅使用两位编码已经不能容纳要求的汉字,所以采用了2\\4位混和的办法,可以支持更多的汉字编码。并且保留了原有的gbk2字节编码兼容gb2312和gbk编码的文件。大概容纳55657个编码(包含特殊字符)unicode编码(也就是utf编码):俗称万国码,致力于使用统一的编码准则表达各国的文字。为表达更多的文字,utf-8采用2/3混编的方式。目前容纳的汉字范围小于gbk编码。并且以3字节的方式处理中文,带来了兼容性的问题,原有的gbk,gb2312,gb18030编码文件都不能正常的处理,还有很长的路要走。