Was ist der beste Weg, um TBytes (UTF-16) in eine Zeichenfolge zu konvertieren?

8

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.

    
Jeremy Mullin 03.11.2008, 20:28
quelle

3 Antworten

13

Am Ende habe ich

benutzt %Vor%     
Jeremy Mullin 03.11.2008, 21:10
quelle
8

StringOf konvertiert TBytes in einen UnicodeString. BytesOf konvertiert einen UnicodeString in TBytes.

    
Bruce McGee 03.11.2008 20:47
quelle
4

Wenn Ihre TBytes UTF-16-Zeichen enthalten, sehen Sie sich WideStringOf und WideBytesOf an.

    
Bruce McGee 03.11.2008 21:09
quelle

Tags und Links