周边城市 关注微博 关注微信

随县论坛

热图推荐

收起左侧

建站技术 >> 网页设计 >> 正文 如何制作GBK与Unicode的对照表

2012-5-10 10:53:38 1065 0

[复制链接]
┽→踏雪无痕╰ 发表于 2012-5-10 10:53:38 |阅读模式

┽→踏雪无痕╰ 楼主

2012-5-10 10:53:38

天涯海角搜一下: 百度 谷歌 360 搜狗 搜搜 有道 必应 即刻

马上注册,结交更多好友,享用更多功能,让你轻松玩转随县论坛。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
前段时间,在所参与的项目中遇到了一个unicode与gb之间转码失败的问题,一些不常用汉字的编码都被转成了“??”,这些汉字没有显示出来,于是自己对相关的问题做了一些研究并最终使问题得以解决。现在就结合前面两篇的unicode与GB方面的基本原理,介绍这种制作GBK-Unicode编码对照表的方法。  Java的字符串String类功能强大,不但能进行一些基本的字符串操作,还可以根据需要构造指定字符集的字符串,本文所介绍的方法正是利了这一点,这种方法的基本思路是:
  1、遍历GBK编码表中的所有汉字,使用该字的GB编码构造一个字符串。GBK编码表中各部分的汉字分块比较整齐,很容易遍历。
  2、使用getBytes()方法取得该字符的字节数组,由于Java是用unicode来表示字符的,所以此汉字的unicode就在其中。
  以下是一段示例代码:
  以下是引用片段:
 
  1. {
  2. int count = 0;
  3. for(int segIndex=0xb0; segIndex<=0xf7; segIndex++) {
  4. for(int charIndex=0xa1; charIndex<=0xfe; charIndex++) {
  5. byte [] gbkBytes = new byte[] {(byte)(segIndex), (byte)charIndex};
  6. byte [] unicodeBytes;
  7. String str = new String(gbkBytes,"GBK");

  8. unicodeBytes = str.getBytes("unicode");
  9. if(unicodeBytes.length == 4) {
  10. count++;
  11. String buffer = "";
  12. for (int i=0;i<gbkBytes.length;i++)
  13. buffer += (int)(0x00ff&gbkBytes[i]) + " ";
  14. for (int i=3;i>1;i--)
  15. buffer += (int)(0x00ff&unicodeBytes[i]) + " ";
  16. buffer += " ";
  17. osw.write(buffer);
  18. }
  19. }
  20. }
  21. }
复制代码
  这一段是对GBK/2区的汉字进行遍历并处理的代码,GBK/2区的首字节范围在[0xb0,0xf7],尾字节范围在[0xa1,0xfe],在构造字符串时使用的字符集为GBK:
  以下是引用片段:
  String str = new String(gbkBytes,"GBK");
  在使用getBytes()取得的字节数组中会有四个元素,前两个不知是做什么用的,可能与字符串本身的结构有关,接下来的两个字节才是真正的unicode码。但这两个字节是倒序的,要从最后一个字节开始取,之所以这样是与big_endian和little_endian有关的,这里不多说。
  当每一次内层循环结束时,buffer字符串中前两个数字就是一个GB码,后面两个数字就是一个unicode码,把它写到文件中就行了。
  这样的文件得到之后,再在另外的程序中载入文件,把Unicode值装入数组,以GB码为索引,就可以很方便地由GB码查得Unicode码。



建站技术 &gt;&gt; 网页设计 &gt;&gt; 正文 如何制作GBK与Unicode的对照表制作,字符串,count,汉字, 该贴已经同步到 ℡幽月╃冰心的微博

发表回复

您需要登录后才可以回帖 登录 | 注册会员

返回列表 本版积分规则

:
审核组
:
613980888@qq.com
:
未填写
:
未填写
:
未填写

主题

帖子

积分11735

图文推荐

  • 随州农行各项贷款突破百亿元

    今年来,随州分行认真贯彻落实中央“六稳”“

  • 【疫情防控】张文宏:疫情常态化防控不等于

    来源:中国新闻网 张文宏分享了国际国内疫情趋势

  • 2019年度企业年报倒计时4天!

    2019年度企业年报即将结束,请未年报的企业迅速

  • 厚重的农耕文化 ——“品味随州香稻”系列

      随州香稻随县柳林基地航拍图。(随州日报

  • 随州首家以军营文化为主体的餐厅"十一国庆

    随州的小伙伴有口福了,十月一日国庆节来临之际,