最近写爬虫需要利用被爬取app的搜索引擎,然后就想到了利用常用的汉字作为搜索关键词
然而,去那去找这些常用的汉字表呢?此时很自然的就想到了gb2312字符集
然后,就是怎样遍历字符集的问题了
先从我们熟悉的ASCII字符集下手,其实Java没有c/c++那么自由,所以Java的遍历和c/c++还是有一点区别的
//对ASCII字符集遍历
try
{
byte[] tmp=new byte[1];
for (int i=0;i<128;i++)
{
tmp[0]=(byte) i;
String b=new String(tmp,"ASCII");
System.out.println(b);
}
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
然后,进入主题,对gb2312字符集进行遍历
首先我们得知道gb2312字符集的基本知识
gb2312相关知识链接
GB2312简体中文编码表
GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB 2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。整个字符集分成94个区,每区有94个位。
GB2312,又称为GB0,由中国国家标准总局发布,1981年5月1日实施
GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个
GB2312是一种区位码。分为94个区(01-94),每区94个字符(01-94)
01-09区为特殊符号
10-15区没有编码
16-55区为一级汉字,按拼音排序,共3755个
56-87区为二级汉字,按部首/笔画排序,共3008个
88-94区没有编码
GB2312只是编码表,在计算机中通常都是用”EUC-CN”表示法,即在每个区位加上0xA0来表示。区和位分别占用一个字节。
//对gb2312字符集遍历
try
{
//遍历gb2312汉字编码分区
for (int i=0xB0;i<0xF7;i++)
{
//遍历每个分区中的汉字
for (int j=0xA1;j<0xFF;j++)
{
byte[] bytes=new byte[2];
bytes[0]= (byte) i;
bytes[1]= (byte) j;
short tmp= (short) (i+j);
String s = new String(bytes, "gb2312");
System.out.println(s);
}
}
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
本文介绍如何使用Java遍历ASCII和GB2312字符集,并重点介绍了GB2312字符集的基本知识及其遍历方法。

被折叠的 条评论
为什么被折叠?



