比如"信息订阅"用ultraedit转换后的值是“D0C5CFA2B6A9D4C4”,但在delphi中该如何转换哪,痛苦

解决方案 »

  1.   

    var
      s: string;
      i: integer;//......
    begin
      i:= strtoint('$'+s);//......
    end;
      

  2.   

    showmessage(widechar(strtoint('$'+'D0C5')));  //信
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var s,str:string;
        i:integer;
    begin
        s:='信息订阅';
        for i := 1 to length(s) do
        begin
            str:=str + inttohex(ord(s[i]),2);
        end;
        caption:=str;
    end;
      

  4.   

    试了一下 UE里确实是D0C5CFA2B6A9D4C4 不知道这是怎么来的
    信息订阅 正确的汉字字节应该是4FE1606F8BA29605
      

  5.   

    每个汉字都是2个字节。而每个字节对应一个ascii码,把这个ascii码转为16进制,然后在连起来,就可以了。如:
                信          息         订         阅
    ascii码:208 | 197  207 | 162  182 | 169  212 | 196
    16进制 : D0 | C5    CF    A2   B6    A9   D4    C4
      

  6.   

    就是取对应字节的ascii啊(通过ord)!然后用inttohex转为16进制。上面不是写的很清楚了吗。
      

  7.   

    ... 可是那得到的并不是D0C5CFA2B6A9D4C4啊
      

  8.   

    得到的是这样的: D0 C5 CF A2 B6 A9 D4 C4
    16进制D0对应10进制是:D * 16 + 0 = 13 * 16 + 0 = 208 
      

  9.   

    请教 lincanwen(密码错误),那怎么把16进制的转换回ASCII码呢?谢谢