将string转换为widestring后再转换成string。内容错误,如何解决?
例如:str := #$1b#$a2#$65#$01#$00#$00#$07#$e0;
如上转换后变成了
#$1b#$a2#$65#$01#$00#$00#$07#$00。

解决方案 »

  1.   

    在COM中是有这个问题。解决方法之一是先将字符串进行base64编码。使用时再解码即可
      

  2.   

    用PWideChar试试
    StringToWideChar和 WideCharToString函数
      

  3.   

    firetoucher(风焱) :
    试过了,结果还是不一样!谁知道原因啊!
      

  4.   

    好象,遇到扩展ascii码时就可能出错!
      

  5.   

    直接付值和firetoucher(风焱)的方法我都试过了,都不行!
      

  6.   

    你们试一下就知道了:procedure TForm1.Button5Click(Sender: TObject);
    var str:string;
        wstr:widestring;
    begin
      str := #$1b#$a2#$65#$01#$00#$00#$07#$e0;
      dispmsg('s:'+strtohex(str));
      wstr := str;
      str := '';
      str := wstr;
      dispmsg('d:'+strtohex(str));
    end;/////////////////
    s:1BA26501000007E0
    d:1BA2650100000700