Ich vermute mal (meine es gab auch mal so eine Diskussion), das man das "Guessing" für Encondings nun evtl. abgeschafft hat (also das raten, welches Encoding der zu lesende Text hat, wenn kein BOM im Text drin ist).
Das war vormals schon so bei TStrings.loadfromfile (Datei, Encoding), wo man nur (oder sagen wir mal einfach) mit Try Except rausfinden konnte, ob ein Text nun
Ansi oder UTF8 ist.
Beim Loadfromstream, hatte es (wenn ich mich nicht täusche) aber funktioniert, wegen des noch enthaltenen Guessings?
Wie auch immer, was die genauen Ursachen sind, konnte ich nicht wirklich erkunden, aber wenn ich es jetzt so mache:
Delphi-Quellcode:
ts.position := 0;
try
slHlp.LoadFromStream(ts, TEncoding.UTF8);
except
ts.Position := 0;
slHlp.LoadFromStream(ts, TEncoding.Ansi);
end;
wird unter
funktioniert es...
Muss jetzt also alle Stellen abchecken, wo ich ein Loadfromstream drin habe und potentiell unklar ist, welches format der einzulesende Text hat...
Interessantwerweise funktioniert unter Windows weiterhin
slHlp.LoadFromStream(ts);
auch, wenn der Stream einen
ANSI-Text enthält. Wie es sich unter MACOS stellt, habe ich noch nicht ausprobiert...
Alternativ könnte es auch sein, dass man das DefaultEncoding für Linux geändert hat.
Immer wieder schön, wie man 3-4 Stunden Zeit vertun kann...
Nachtrag:
Ja, auch unter MacOS muss ich das anpassen, sonst gibt es eine entsprechende Meldung...
Na ja, unter MAC tröstet mich jetzt aber die Verwendung von Metal, was die Anzeige echt extrem beschleunigt, vor allem auf Retina Monitoren...
Insofern lohnt der Umstieg auf 10.4 allemal...