尝试将项目从Delphi 2007迁移到Delphi XE4。在Delphi XE4中将String转换为AnsiString的最佳方法是什么?
答案 0 :(得分:9)
您只需指定它:
var
AnsiStr: AnsiString;
Str: string;
....
AnsiStr := Str;
编译器会发出警告:
W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString'
您可以使用强制转换来抑制该警告:
AnsiStr := AnsiString(Str);
默认情况下不会发出警告,但当然仍有数据丢失的可能性。如果启用警告W1060,编译器会说:
W1060 Explicit string cast with potential data loss from 'string' to 'AnsiString'
当然,不期望Delphi XE4代码可以使用AnsiString
。除非您有非常具体的互操作要求,否则文本最好保留在本机数据类型string
中。如果要对字节数组进行操作,请使用TBytes
或TArray<Byte>
。