如何用Delphi把中文字符转换成ASCII码的16进制?(50分)

  • 主题发起人 主题发起人 beyondxp
  • 开始时间 开始时间
B

beyondxp

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用Delphi把字符转换成ASCII的16进制形式,英文字符只需要用Ord函数就可以实现,但我不知道中文字符该如何转换,往告之,谢谢~
 
下面这个函数把str分解为Acsi存入链表pASCIS<br>function TCPNameCmb.TranGBToDouStrs(var pASCIS: TStringList;<br>&nbsp; str: String): String;<br>var<br>&nbsp; strTmp:String;<br>&nbsp; i,nLen:integer;<br>begin<br>&nbsp; strTmp:='';<br>&nbsp; Result:='';<br>&nbsp; if str='' then<br>&nbsp; &nbsp; Exit;<br>&nbsp; if pASCIS=nil then<br>&nbsp; &nbsp; pASCIS:= TStringList.Create ;<br>&nbsp; pASCIS.Clear ;<br>&nbsp; i:=1;<br>&nbsp; nLen:=Length(str);//取出字符串的长度,注意,每个汉字的长度为2<br>&nbsp; while i&lt;=nLen &nbsp;do<br>&nbsp; begin<br>&nbsp; &nbsp; strTmp:='0';<br>&nbsp; &nbsp; if StrToInt(Format('%d',[ord(str)])) &gt;127 then &nbsp; //判断这个字符是不是属于汉字,是就取2个Acsii字符<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; strTmp:=Format('%d',[ord(str)]) + Format('%d',[ord(str[i+1])]);<br>&nbsp; &nbsp; &nbsp; i:=i+2;<br>&nbsp; &nbsp; end<br>&nbsp; &nbsp; else<br>&nbsp; &nbsp; begin//不是就只取一个字符<br>&nbsp; &nbsp; &nbsp; strTmp:=Format('%d',[ord(str)]);<br>&nbsp; &nbsp; &nbsp; i:=i+1;<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; pASCIS.Add(strTmp);<br>&nbsp; end;<br>&nbsp; Result:= pASCIS.Text;<br>end;
 
我也想学学,xue_fg加点注释好吗???<br>谢谢!!! :)
 
http://www.delphibbs.com/keylife/iblog_show.asp?xid=4707
 
后退
顶部