Delphi 中String、ANSIString、TBytes之间的转换

  • Post author:
  • Post category:其他


buffer是tbytes型,temp是string型
temp := string(pointer(buffer));
setlength(temp,length(buffer));
CopyMemory(Pointer(temp), @buffer[0], Length(buffer));

d2007以后

一、string转为ansistring

1、直接赋值 (有警告)

2、ansistring()类型强制转换。(无警告)

二、ansistring 转为string

1、直接赋值 (有警告)

2、string()类型强制转换。(无警告)

三、string 转为Tbytes

1、bytes :=  bytesof(str) 已转为ansi编码

2、bytes := widebytesof(str) UNICODE 编码

四、ansistring 转为Tbytes

1、bytes := bytesof(str) ansi编码

2、bytes := widebytesof(string(str)) UNICODE 编码

五、Tbytes 转为string

1、 str := stringof(bytes) Tbytes 为ansi编码

2、 str := widestringof(bytes) Tbytes 为unicode编码

六、PChar转String

用StrPas函数,StrPas(PChar):AnsiString;



版权声明:本文为u011706768原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。