请问各位高手怎样将汉字转化为十进制或十六进制数阿?
字母能用以下方法转化,汉字就不能用Ord函数啦,请指教!
var
S:String;
S := S + 'The ASCII code for "c" is ' + IntToStr(Ord('c')) +  ' decimal';
   MessageDlg(S, mtInformation, [mbOk], 0, mbOK);

解决方案 »

  1.   

    INttoHex(longint(Lpstr('李')),4);
    longint(Lpstr('李'))
      

  2.   

    说一个不太好意思的办法:
    var
      buf : Word;
      str : string;
      i : integer;
    begin
      str := '你';
      buf := 0;
      for i:= 1 to length(str) do
        buf:= buf + byte(str[i]);
      showmessage(inttostr(buf));
    end;
      

  3.   

    var
    S:String;
    str:widestring;
    begin
    str:='汉字测试';
    S := S + 'The ASCII code for ''' + str[1] + ''' is ' + IntToStr(Ord(str[1])) +  ' decimal';
       MessageDlg(S, mtInformation, [mbOk], 0, mbOK);
      

  4.   

    呵呵var
      str: string;
    begin
      str := '你';
      showmessage(inttostr(ord(str[1]))+','+inttostr(ord(str[2])));
    end;
      

  5.   

    大家在搞什么鬼呀,用Format不就性了嘛。const
      OutStr = '%s => (High)%s + (Low)%s ;Hex: (High)%x + (Low)%x; Dec: (High)%d + (Low) %d';
    var
      str: string;
    begin
      str := '好';
      showmessage( Format(OutStr, [str,
                 str[1], str[2],
                 ord(str[1]), ord(str[2]),
                 ord(str[1]), ord(str[2])])
      );
    end;