Was ist der beste Weg, ein Array von Bytes, die als TBytes deklariert sind, in Delphi 2009 in eine Unicode-Zeichenkette umzuwandeln? In meinem speziellen Fall hat das Array TBytes bereits UTF-16-codierte Daten (2 Bytes für jedes Zeichen).
Da TBytes keinen Null-Terminator speichert, funktioniert das Folgende nur, wenn das Array # 0 im Speicher neben ihm hat.
%Vor%Wenn nicht, wird das String-Ergebnis zufällige Daten am Ende haben (es könnte auch eine Leseverletzung verursachen, abhängig davon, wie lange es dauerte, bis eine # 0 im Speicher gefunden wurde).
Wenn ich die ToBytes-Funktion verwende, gibt es 't' # 0'e '# 0's' # 0't '# 0, was ich nicht will.
StringOf konvertiert TBytes in einen UnicodeString. BytesOf konvertiert einen UnicodeString in TBytes.
Wenn Ihre TBytes UTF-16-Zeichen enthalten, sehen Sie sich WideStringOf und WideBytesOf an.