分享

汉字Unicode-GBK码互换程序。 从delphi盒子下载-Chinese Unicode-GBK code swap procedures. Delphi downloaded from the

 quasiceo 2012-12-19
unit ConUnicode; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, Mask; 
 
type 
  TForm1 = class(TForm) 
    Edit1: TEdit; 
    Button1: TButton; 
    Button2: TButton; 
    Button3: TButton; 
    Label4: TLabel; 
    Label5: TLabel; 
    MaskEdit1: TMaskEdit; 
    MaskEdit2: TMaskEdit; 
    procedure Button1Click(Sender: TObject); 
    procedure Button2Click(Sender: TObject); 
    procedure Button3Click(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 
 
var 
  Form1: TForm1; 
 
implementation 
 
{$R *.dfm} 
 //汉字转换 
procedure TForm1.Button1Click(Sender: TObject); 
var wp:widestring; 
    ww:widechar; 
    we:string; 
    ii:word; 
begin 
 
   we:=trim(edit1.Text); 
   wp:=we;// 转换为widechar字符串 
   ww:=wp[1]; //取widechar字符 
   ii:=ord(ww); //取得widechar序数 
  maskedit1.text:=inttostr(ii);//显示十进制unicode内码 
  label4.Caption:=inttohex(ii,4); //显示十六进制unicode内码 
  ii:=ord(we[1])*256+ord(we[2]); //计算GBK内码 
  maskedit2.Text:=inttostr(ii);  //显示GBK内码 
  label5.Caption:=inttohex(ii,4) //显示十六进制GBK内码 
end; 
//unicode码转化 
procedure TForm1.Button2Click(Sender: TObject); 
 var ww:widechar; dd:integer;ws:string; 
begin 
  dd:=strtoint(trim(maskedit1.Text)); //转为整型 
  if dd>65535 
  then showmessage('数值超出范围') 
  else 
    begin 
      label4.Caption:=inttohex(dd,4); //显示十六进制unicode内码 
      ww:=widechar(dd); //转换为unicode字符 
      edit1.Text:=ww; //显示字符 
      ws:=ww;  //转换为GBK字符串 
      dd:=ord(ws[1])*256+ord(ws[2]); // 计算GBK内码 
       maskedit2.Text:=inttostr(dd);  //显示GBK内码 
      label5.Caption:=inttohex(dd,4);  //显示十六进制GBK内码 
    end; 
end; 
//转换GBK码 
procedure TForm1.Button3Click(Sender: TObject); 
 var ww:widestring; dd:integer;ws:string; 
begin 
  dd:=strtoint(trim(maskedit2.Text)); //转为整型 
  if dd>65535 
  then showmessage('数值超出范围') 
  else 
    begin 
      label5.Caption:=inttohex(dd,4);  //显示十六进制GBK内码 
      ws:=chr(dd div 256)+chr(dd mod 256); //转化字符 
      edit1.Text:=ws; //显示字符 
      ww:=ws;  //转换为unicode字符 
      dd:=ord(ww[1]); //取得widechar序数 
      label4.Caption:=inttohex(dd,4); //显示十六进制unicode内码 
       maskedit1.Text:=inttostr(dd);  //显示GBK内码 
    end; 
end; 
 
end. 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多