先上转换函数:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} {查汉字区位码} function Str2GB(const s: AnsiString): string; const G = 160; begin Result := Format('%d%d', [Ord(s[1])-G, Ord(s[2])-G]); end; {通过区位码查汉字} function GB2Str(const n: Word): string; const G = 160; begin Result := string(AnsiChar(n div 100 + G) + AnsiChar(n mod 100 + G)); end; {测试} procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(GB2Str(4582)); {万} end; procedure TForm1.Button2Click(Sender: TObject); begin ShowMessage(Str2GB('万')); {4582} end; end.
获取区位码表: 准备个 Memo 接收(注意使用了上面的函数)
var i,j: Byte; s: string; begin s := ''; for i := 1 to 94 do begin for j := 1 to 94 do s := Format('%s %s', [s, GB2Str(i*100 + j)]); Memo1.Lines.Add(s); s := ''; end; end;
汉字与区位码(2) - 分析