如何在 Delphi XE4 中将 AnsiString 转换为 UnicodeString

tao*_*oxl 3 delphi unicode-string ansistring delphi-xe4

exzample code:
var
  str1 : String;
  str2 : AnsiString;
  ....
  str2 := ....;
  str1 := String(str2);  
Run Code Online (Sandbox Code Playgroud)

我按照上面的方法进行了转换,但没有成功。我发现 str1 中丢失了一些数据。是否有安全的方法将 AnsiString 转换为 UnicodeString?

Dav*_*nan 5

您的代码已经是正确的。它将从 ANSI 转换为 UTF-16,不会丢失信息。

因此,我得出的结论是,当您分配给 AnsiString 变量时,信息会丢失。换句话说,你的代码中的错误包含在....你的代码的一部分中。

该错误可能是 AnsiString 变量的数据和代码页不匹配。