以下是一级简码汉字拼音对照表,第一个数字为区号减0xb0,第二个数字为位号减0xa1。每行表示一个拼音首字母在一级简码中的起始区号位号,一级简码是按拼单排序的。比如:“张”字的内码为0xd5, 0xc5,分别减去0xb0、0xa1后等于37,36,查下表可得出在z之后。再如:“王”字的内码为0xcd, 0xf5,分别减去0xb0、0xa1后等于29,84,查下表正好在w和x之间。
二级简码是按笔划排序的,只能通过逐个建立拼音对照表来查找,不过二级简级很少用。00-00: a
00-36: b
02-32: c
04-78: d
06-73: e
07-01: f
08-32: g
09-93: h
i
11-86: j
15-05: k
16-11: l
18-71: m
20-34: n
21-21: o
21-29: p
22-57: q
24-26: r
24-85: s
27-90: t
u
v
29-57: w
30-83: x
33-24: y
36-48: z
// 以下生成全部汉字的VC程序,从产生出来的hz.txt中可以分析出上表CFile f;
f.Open("c:\hz.txt", CFile::modeCreate | CFile::modeWrite);
char buff[1000];
for ( int i = 0 ; i < (0xff - 0xb0) ; i++ )
{
memset((void*)buff, 0, 1000);
int k = 0;
for ( ; ; )
{
if ( k >= 94 ) break;
int k1 = k;
for ( int j = 0 ; j <= 16 ; j++, k++ )
{
buff[j*2] = i+0xb0;
buff[j*2+1] = k + 0xa1;
}
CString strLine;
strLine.Format("%02d-%02d: %s\x0d\x0a", i, k1, buff);
f.Write((void*)LPCTSTR(strLine), strLine.GetLength());
}
}
f.Close();
二级简码是按笔划排序的,只能通过逐个建立拼音对照表来查找,不过二级简级很少用。00-00: a
00-36: b
02-32: c
04-78: d
06-73: e
07-01: f
08-32: g
09-93: h
i
11-86: j
15-05: k
16-11: l
18-71: m
20-34: n
21-21: o
21-29: p
22-57: q
24-26: r
24-85: s
27-90: t
u
v
29-57: w
30-83: x
33-24: y
36-48: z
// 以下生成全部汉字的VC程序,从产生出来的hz.txt中可以分析出上表CFile f;
f.Open("c:\hz.txt", CFile::modeCreate | CFile::modeWrite);
char buff[1000];
for ( int i = 0 ; i < (0xff - 0xb0) ; i++ )
{
memset((void*)buff, 0, 1000);
int k = 0;
for ( ; ; )
{
if ( k >= 94 ) break;
int k1 = k;
for ( int j = 0 ; j <= 16 ; j++, k++ )
{
buff[j*2] = i+0xb0;
buff[j*2+1] = k + 0xa1;
}
CString strLine;
strLine.Format("%02d-%02d: %s\x0d\x0a", i, k1, buff);
f.Write((void*)LPCTSTR(strLine), strLine.GetLength());
}
}
f.Close();
function tform1.pingyin(const ch:string):char;
var quwei:integer;r:char;
begin
quwei:=(ord(ch[1])-176)*256+ord(ch[2])-161;
case quwei of
0..35:r:='a';
36..543:r:='b';
544..1101:r:='c';
1102..1608:r:='d';
1609..1792:r:='e';
1793..2079:r:='f';
2080..2396:r:='g';
2397..2901:r:='h';
2902..3844:r:='j';
3845..4106:r:='k';
4107..4678:r:='l';
4679..5153:r:='m';
5154..5396:r:='n';
5397..5404:r:='o';
5405..5688:r:='p';
5689..6169:r:='q';
6170..6228:r:='r';
6229..7001:r:='s';
7002..7480:r:='t';
7481..7762:r:='w';
7763..8471:r:='x';
8472..9263:r:='y';
else r:='z';
end;
result:=r;
end;