比如:var s:string;
     s:='测试';
     strtoasc;//汉字字符串转化为asc
     asctostr;//asc转化为汉字字符串     showmessage();//打印出asc码或是字符串

解决方案 »

  1.   

    自己随便写写就出来了。
    chr,ord就行了
    ========================================
    抄一段给你:
    unit BinHexTools;interface
    function HexToBin(HexNr : string): string;  //把十六进制字符串转换为二进制字符串
    function HexCharToInt(HexToken : char):Integer; //转换一个十六进制字符为整数
    function HexCharToBin(HexToken : char): string;//转换一个十六进制字符为二进制字符串
    function pow(base, power: integer): integer;//指数函数
    function BinStrToInt(BinStr : string) : integer;//把二进制字符串转换为整数
    function DecodeSMS7Bit(PDU : string):string;// 解码一个7-bit SMS (GSM 03.38) 为ASCII码
    function ReverseStr(SourceStr : string) : string; //反转一个字符串implementation
    uses sysutils, dialogs; function HexCharToInt(HexToken : char):Integer; 
    begin 
      {if HexToken>#97 then HexToken:=Chr(Ord(HexToken)-32); 
      { use lowercase aswell }  Result:=0;
      if (HexToken>#47) and (HexToken<#58) then       { chars 0....9 }
         Result:=Ord(HexToken)-48
      else if (HexToken>#64) and (HexToken<#71) then  { chars A....F }
         Result:=Ord(HexToken)-65 + 10;
    end;function HexCharToBin(HexToken : char): string;
    var DivLeft : integer;
    begin
        DivLeft:=HexCharToInt(HexToken);   { first HEX->BIN }
        Result:='';
                                          { Use reverse dividing }
        repeat                             { Trick; divide by 2 }
          if odd(DivLeft) then             { result = odd ? then bit = 1 }
            Result:='1'+Result             { result = even ? then bit = 0 }
          else
            Result:='0'+Result;
          DivLeft:=DivLeft div 2;       { keep dividing till 0 left and length = 4 }
        until (DivLeft=0) and (length(Result)=4);      { 1 token = nibble = 4 bits }
    end;function HexToBin(HexNr : string): string; 
    { only stringsize is limit of binnr } 
    var Counter : integer; 
    begin
      Result:='';   for Counter:=1 to length(HexNr) do
        Result:=Result+HexCharToBin(HexNr[Counter]);
    end;function pow(base, power: integer): integer; 
    var counter : integer; 
    begin 
      Result:=1;   for counter:=1 to power do 
        Result:=Result*base; 
    end; function BinStrToInt(BinStr : string) : integer; 
    var counter : integer; 
    begin 
      if length(BinStr)>16 then 
        raise ERangeError.Create(#13+BinStr+#13+ 
                'is not within the valid range of a 16 bit binary.'+#13);   Result:=0;   for counter:=1 to length(BinStr) do 
          if BinStr[Counter]='1' then 
            Result:=Result+pow(2,length(BinStr)-counter); 
    end; function DecodeSMS7Bit(PDU : string):string; 
    var OctetStr : string; 
        OctetBin : string; 
        Charbin  : string; 
        PrevOctet: string; 
        Counter  : integer; 
        Counter2 : integer; 
    begin 
      PrevOctet:=''; 
      Result:='';   for Counter:=1 to length(PDU) do 
        begin 
          if length(PrevOctet)>=7 then     { if 7 Bit overflow on previous } 
            begin 
              if BinStrToInt(PrevOctet)<>0 then 
                Result:=Result+Chr(BinStrToInt(PrevOctet)) 
              else Result:=Result+' ';           PrevOctet:=''; 
            end;       if Odd(Counter) then            { only take two nibbles at a time } 
            begin 
              OctetStr:=Copy(PDU,Counter,2); 
              OctetBin:=HexToBin(OctetStr);           Charbin:=''; 
              for Counter2:=1 to length(PrevOctet) do 
                Charbin:=Charbin+PrevOctet[Counter2];           for Counter2:=1 to 7-length(PrevOctet) do 
                Charbin:=OctetBin[8-Counter2+1]+Charbin;           if BinStrToInt(Charbin)<>0 then Result:=Result+Chr(BinStrToInt(CharBin)) 
                else Result:=Result+' ';           PrevOctet:=Copy(OctetBin,1,length(PrevOctet)+1); 
            end; 
        end; 
    end; function ReverseStr(SourceStr : string) : string; 
    var Counter : integer; 
    begin 
      Result:='';   for Counter:=1 to length(SourceStr) do 
        Result:=SourceStr[Counter]+Result; 
    end; end. 
      

  2.   

    我自己整理的互转代码,分享一下.
    ===========================================================================
    function CharToString(Buf:pchar;length:integer):string;//char转变成string
    var
       s:string;
    begin
       setlength(s,length);
       move(Buf[0],s[1],length); //不能用strcopy
       result:=s;
    end;
    {汉字和ascll码互转函数}
    function   HexToStr(const   sMsg:string;var   acMsg:array   of   char):string;
    var
       iLen:integer;
       s:string;
    begin
         fillchar(acmsg,sizeof(acMsg),0);//把acMsg设置为0
         iLen:=length(sMsg);
         HexToBin(pchar(sMsg),acMsg,iLen);
         s:=CharToString(acMsg,length(acMsg));
         result:=s;
    end;function   StrToHex(const   sMsg:string;var   acMsg:array   of   char):string;
    var
       iLen:integer;
       s:string;
    begin
         fillchar(acMsg,sizeof(acMsg),0);//把acMsg设置为0
         iLen:=length(sMsg);
         bintohex(pchar(sMsg),acMsg,iLen);//16进制转化为2进制
         s:=CharToString(acMsg,length(acMsg));
         result:=s;
    end;
      

  3.   

    CharToString  这个函数在那啊?