Da TBytes als array of Byte (8 Bit) deklariert ist, können da unmöglich Werte wie $043B (16 Bit) drinstehen.
Wie ist es dann möglich, daß TStringStream einen UTF8-/
Ansi-/WideString in einem TBytes-Array speichern kann?
Ich habe ja nicht behauptet, daß man WideStrings nicht in TBytes packen kann. Es ist nur nicht möglich, daß in TBytes Werte wie ($043B, $0438, $043D, $0438, $044F) stehen. Möglich ist aber eine solche Darstellung: ($3B, $04, $38, $04, $3D, $04, $38, $04, $4F, $04). Dies entspricht aber 1:1 der binären Darstellung des
Unicode-Strings "линия". Wie man allerdings erwarten kann, daß TEncoding bei einem Input von "Zeile" die binäre Darstellung von "линия" zurückgeben soll, ist mir nicht ganz klar. Das ist eigentlich eine Aufgabe für ein Übersetzungswörterbuch. Solange ein solchen
Unicode-basiert ist, braucht man sich um Codepages aber gar nicht zu kümmern.