相关文章
网页设计制作网页必须注意的几个问题
北京网页设计制作网页必须注意的几个问题
北京网站制作XHTML初学者教程:XHTML标准属性
网页设计用CSS如何实现单行图片与文字垂直居中
北京网站制作口语解说--让你理解网页相对定位与绝对定位
北京网站制作经验总结:网页到底需要什么编码?
北京网页设计网页制作学习:div+css命名参考
北京网站设计网页设计:如何确定网站栏目
北京网站设计网页设计基本配色参考色谱——高雅
网页设计用户特征描述对设计的影响
品牌理念
北京网站建设最佳合作伙伴
北京网站建设专家企通互联
竭诚为您提供网站建设服务!
友好连接
文章搜索
你的位置:首页 >> 网页设计 >> 企通互联网站设计如何制作GBK与Unicode的对照表
企通互联网站设计如何制作GBK与Unicode的对照表
前段时间,在所参与的项目中遇到了一个unicode与gb之间转码失败的问题,一些不常用汉字的编码都被转成了“??”,这些汉字没有显示出来,于是自己对相关的问题做了一些研究并最终使问题得以解决。现在就结合前面两篇的unicode与GB方面的基本原理,介绍这种制作GBK-Unicode编码对照表的方法。
Java的字符串String类功能强大,不但能进行一些基本的字符串操作,还可以根据需要构造指定字符集的字符串,本文所介绍的方法正是利了这一点,这种方法的基本思路是: Chinaz^com
1、遍历GBK编码表中的所有汉字,使用该字的GB编码构造一个字符串。GBK编码表中各部分的汉字分块比较整齐,很容易遍历。
站.长. www.qitongnet.com站
2、使用getBytes() 北京网页设计方法取得该字符的字节数组,由于Java 网站建设是用unicode来表示字符的,所以此汉字的unicode就在其中。
以下是一段示例代码: 中.国.站长站
以下是引用片段:北京网站建设
网页设计
{ 北京网站制作
int count = 0; 北京网站设计
for(int segIndex=0xb0; segIndex<=0xf7; segIndex++) { 北京网页设计
for(int charIndex=0xa1; charIndex<=0xfe; charIndex++) { 网站制作
byte [] gbkBytes = new byte[] {(byte)(segIndex), (byte)charIndex}; 网站设计
byte [] unicodeBytes; 企通互联
String str = new String(gbkBytes,"GBK"); 网站制作
北京网站制作
unicodeBytes = str.getBytes("unicode"); 网站建设
if(unicodeBytes.length == 4) { 北京网页设计
count++;
中国站.长站
网站设计String buffer = ""; 网页设计
for (int i=0;i<gbkBytes.length;i++) 网站制作
buffer += (int)(0x00ff&gbkBytes[i]) + " "; 北京网页设计
for (int i=3;i>1;i--) 北京网站制作
buffer += (int)(0x00ff&unicodeBytes[i]) + " "; 北京网站设计
buffer += " "; 网页设计
osw.write(buffer); 网站建设
} Www^Chinaz^com 北京网站建设
} 企通互联
} 网站制作
}
站.长站
这一段是对GBK/2区的汉字进行遍历并处理的代码,GBK/2区的首字节范围在[0xb0,0xf7],尾字节范围在[0xa1,0xfe],在构造字符串时使用的字符集为GBK: 中国.站.长站
以下是引用片段:
Chinaz@com
String str = new String(gbkBytes,"GBK"); Www~Chinaz~com
在使用getBytes()取得的字节数组中会有四个元素,前两个不知是做什么用的,可能与字符串本身的结构有关,接下来的两个字节才是真正的unicode码。但这两个字节是倒序的,要从最后一个字节开始取,之所以这样是与 北京网站设计big_endian和little_endian有关的,这里不多说。
Www_Chinaz_com
当每一次内层循环结束时,buffer字符串中前两个数字就是一个GB码,后面两个数字就是一个unicode码,把它写到文件中就行了。
中国站. 网站制作长.站
这样的文件得到之后,再在另外的程序中载入文件,把Unicode值装入数组,以 企通互联GB码为索引,就可以很方便地由GB码查得Unicode码。
请作者联系本站,及时附注您的姓名。联系邮箱:edu#chinaz.com(把#改为@)。 中国站长.站