3

我有一个AnsiString,我需要以最有效的方式将其转换为TBytes. 我怎样才能做到这一点 ?

4

2 回答 2

10

该函数BytesOf将 AnsiString 转换为 TBytes。

var
  A: AnsiString;
  B: TBytes;
begin
  A := 'Test';
  B := BytesOf(A);

  // convert it back
  SetString(A, PAnsiChar(B), Length(B));
end;
于 2018-01-19T08:40:57.333 回答
7

假设您想保留相同的编码,您可以这样做

SetLength(bytes, Length(ansiStr));
Move(Pointer(ansiStr)^, Pointer(bytes)^, Length(ansiStr));

相反,它会

SetLength(ansiStr, Length(bytes));
Move(Pointer(bytes)^, Pointer(ansiStr)^, Length(bytes));
于 2018-01-19T08:08:46.850 回答