wenn du keine direkten "binäroperationen" mit den Strings machst und bei längenangaben alles mit SizeOf(Char) multiplizerst, dann kannst du alles auf String / Char einstellen und es läuft in allen Delphi-Versionen mit den "standardfunktionen"
wenn du irgendwo den String direkt manipulieren willst, wo es auch noch auf jedes Byte ankommt, dann entscheide dich entweder für AnsiString/PAnsiChar oder WideString/PWideChar,
denn dann ist in allen Delphis gleich
JA,
ANSI = 1 Byte
und
Unicode (genauer UCS-2) = 2 Byte,
wobei es theoretisch schon lange noch UCS-4 gibt = 4 Byte pro Zeichen (leider ist die Umsetzung davon in Delphi echt grauenhaft und der UCS4String ist nichtmal kompatibel zu den AnsiString/WideStrings ... und keine automatische Umwandlung und Dergleichen
)