type
  TBIGChineseType = array [#$A1..#$FF, #$40..#$FE] of TChineseType;
  PBIGChineseType = ^TBIGChineseType;  //对应于Big字库
  TGBChineseType = array [#$A7..#$FF, #$A1..#$FE] of TChineseType;
  PGBChineseType = ^TGBChineseType; //对应于GB字库
function TForm1.BigToGb(Sur:PChar):PChar;
Var
Der:array [0..255] of Char;
i:Integer;
begin
i:=0;
repeat
if (Sur[i]<#$A1) or (i=StrLen(Sur)-1) or (Sur[i+1]<#$40) then begin  // is 英文字符
  Der[i]:=Sur[i];
  Inc(i);
End Else Begin  //is 中文字符
Der[i]:= PBIGChineseType(PBIGTable)^[Sur[i],Sur[i+1]].HiChar;
Der[i+1]:= PBIGChineseType(PBIGTable)^[Sur[i],Sur[i+1]].LoChar;
Inc(i);
Inc(i);
End;
until (i>=StrLen(Sur));
Der[StrLen(Sur)]:=#0;
Result:=Der;
end;function TForm1.GbToBig(Sur:PChar):PChar;
Var
Der:array [0..255] of Char;
i:Integer;
begin
i:=0;
repeat
if (Sur[i]<#$A1) or (i=StrLen(Sur)-1) or (Sur[i+1]<#$A1) then begin  // is 英文字符
  Der[i]:=Sur[i];
  Inc(i);
End Else Begin  //is 中文字符
if Sur[i]<#$B0 then // #$A1=<Sur[i]<#$B0  -->  GB2312的符号区
Der[i]:= PGBChineseType(PGBTable)^[Chr(Ord(Sur[i])+6),Sur[i+1]].HiChar
else                                 //For  A1+6 = A7
Der[i]:= PGBChineseType(PGBTable)^[Sur[i],Sur[i+1]].HiChar;
Der[i+1]:= PGBChineseType(PGBTable)^[Sur[i],Sur[i+1]].LoChar;
Inc(i);
Inc(i);
End;
until (i>=StrLen(Sur));
Der[StrLen(Sur)]:=#0;
Result:=Der;
end;