2008-11-03 145 views
8

在Delphi 2009中,將聲明爲TBytes的字節數組轉換爲unicode字符串的最佳方法是什麼?在我的特殊情況下,TBytes數組已經有了UTF-16編碼數據(每個char有2個字節)。將TBytes(UTF-16)轉換爲字符串的最佳方法是什麼?

由於TB的不存儲空終止,下面將僅當陣列恰好有#0在與其相鄰的存儲工作。

MyString := string(myBytes); 

如果沒有,字符串結果將在年底有隨機的數據(它也很可能會導致讀取違反取決於它花費的時間遇到​​一個#0在內存中)。

如果我使用ToBytes函數,它返回 'T' #0'e '#0的' #0't'#0,這不是我想要的。

回答

13

我結束了使用

TEncoding.Unicode.GetString(MyByteArray); 
8

StringOf轉換TB的到的UnicodeString。 BytesOf將UnicodeString轉換爲TBytes。

+0

感謝布魯斯,我修改了我原來的問題,因爲它是不夠具體。 TBytes數組編碼爲utf16數據,所以ToBytes不起作用。 – 2008-11-03 21:07:04

4

如果TB的包含UTF-16字符,看WideStringOf和WideBytesOf。

相關問題