如何将Unicode字符串转换为AnsiString?

时间:2013-12-05 14:31:16

标签: delphi delphi-xe4

尝试将项目从Delphi 2007迁移到Delphi XE4。在Delphi XE4中将String转换为AnsiString的最佳方法是什么?

1 个答案:

答案 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中。如果要对字节数组进行操作,请使用TBytesTArray<Byte>