将字节数组解码为字符串,然后赋值给Text
字符串列表的属性。
var
Bytes: TBytes;
StringList: TStringList;
....
StringList.Text := TEncoding.Unicode.GetString(Bytes);
请注意使用TBytes
which 是用于保存动态字节数组的标准类型。出于兼容性原因,使用TBytes
. 这样,您的数据可以由其他 RTL 和库代码处理。我们立即通过使用TEncoding
.
SetString
正如我最初建议的那样,您可以使用:
var
Text: string;
Bytes: TBytes;
StringList: TStringList;
....
SetString(Text, PChar(Bytes), Length(Bytes) div SizeOf(Char)));
StringList.Text := Text;
我个人更喜欢使用TEncoding
,因为它对所使用的编码非常明确。
如果您的文本以空终止,那么您可以使用:
StringList.Text := PChar(Bytes);
同样,我更愿意明确说明编码。而且我可能对我的数据没有以某种方式被空终止有点偏执。
您可能会发现 UTF-8 比 UTF-16 更有效。