在Delphi 2009中将声明为TBytes的字节数组转换为Unicode字符串的最佳方法是什么?在我的特殊情况下,TBytes数组已经具有UTF-16编码的数据(每个字符2个字节)。

由于TBytes不存储空终止符,因此只有在数组恰好在其相邻的内存中具有#0的情况下,以下命令才有效。

MyString := string( myBytes );

如果不是,则字符串结果的末尾将包含随机数据(这也可能会导致读取冲突,具体取决于遇到内存中的#0所花费的时间)。

如果我使用ToBytes函数,它将返回't'#0'e'#0's'#0't'#0,这不是我想要的。

最佳答案

我最终使用

TEncoding.Unicode.GetString( MyByteArray );

10-08 04:48