バイト配列を文字列にデコードし、Text
文字列リストのプロパティに代入します。
var
Bytes: TBytes;
StringList: TStringList;
....
StringList.Text := TEncoding.Unicode.GetString(Bytes);
TBytes
バイトの動的配列を保持するために使用される標準型であることに注意してください。互換性の理由から、 を使用するのが理にかなっていますTBytes
。そうすれば、データを他の RTL およびライブラリ コードで処理できます。を使用してすぐに利用できるという事実TEncoding
。
SetString
私の答えが最初に示唆したように、あなたは使用できます:
var
Text: string;
Bytes: TBytes;
StringList: TStringList;
....
SetString(Text, PChar(Bytes), Length(Bytes) div SizeOf(Char)));
StringList.Text := Text;
TEncoding
使用されているエンコーディングについて非常に明示的であるため、個人的には使用することを好みます。
テキストが null で終了している場合は、次を使用できます。
StringList.Text := PChar(Bytes);
繰り返しますが、エンコーディングについては明示したいと思います。そして、私は自分のデータがどういうわけかnullで終了していないことに少し偏執的かもしれません。
UTF-8 は UTF-16 よりも効率的な表現であることに気付くかもしれません。