string和widestring转换丢失数据的问题
把string强制转成widestring的时候,当string里面的数据不巧为一些特殊数据时,widestring会把它转换成其他字符,造成数据丢失,请问怎么解决?
var S:string;
WS:widestring;
begin
s:=#2+#3+#0+#10+#0+#1+#164+#59;
showmessage(inttostr(Length(S)));
WS:=widestring(S);
S:=WS;
showmessage(inttostr(Length(S)));
end;
第一个得出的长度是8
第二个得出的长度就变成7了。。。
请问怎么才能使数据不丢失?
做项目的时候,widestring是接口,但是由于处理的数据都是16进制的,所以我在内部都转成string或者array of byte,最后的时候才转换一下。。没想到还是出这种问题..