Wenn die Datei keine Codierungsinformationen enthält (bei textdateien das BOM), dann kann man versuchen die Bytes zu anlysieren (funktioniert aber nicht ganz sicher)
oder man verwendet ein Stantardformat.
Bei Textdateien gehen viele Windows-Programme von
ANSI aus.
(z.B. bei
XML ist es per
Spezifikation überall UTF-8)
Das TWideStrings geht aber ohne Info (Vorgabe per Encoding-Parameter oder über ein vorhandenes BOM) einfach von UTF-16 aus, was beim "chinesisch" enden muß, wenn es vorher
ANSI oder UTF-8 war.
TStrings/TStringList nimmt ohne Info daher CP_ACP also die
ANSI-CodePage des Systems, damit der Code zu alten
ANSI-Delphis (vor D2009) kompatibel bleibt.