ah, danke, manchmal sieht man den Wald vor Bäumen nicht mehr. Delphi schaut nur aufs BOM => unter Linux wird alles ohne BOM als UTF-8 deklariert.
Dann werde ich zumindest die Default-Entscheidung für Linux anpassen.
ASCII/UTF7/
ANSI-Dateien werden bei Linux korrekt als nicht-UTF8 erkannt und danach trotzdem als UTF8 deklariert. Dann nehme ich da lieber auch
ANSI als default. Dann passt es wenigstens oftmals und nicht mehr nie.
Abschließend nochmal die beantworteten Fragen:
Ist es erwartungsgemäß, dass Windows die
Ascii-Datei für
Ansi erklärt? Und wie siehts mit Linux aus?
Ja, das ist erwartungsgemäß, denn Delphi unterscheidet einfach nicht weiter.
Liegt das mit den ganzen angeblichen UTF-8-Dateien bei Linux am Dateisystem? Oder macht mein Code nicht was er soll? Oder hat Ddelphi da Schwächen?
Ja, das würde ich als kleine Schwäche bezeichnen. Etwas besser ist die Programmierung unter Windows und es leuchtet mir auch nicht ein, wieso das nicht für Win und Linux gleich läuft. Bei mir läuft es jetzt gleich. (Default-Rückgabe bei Dateien ohne BOM)
Warum wird
ASCII unter Windows nicht als
ASCII erkannt?
Bei Dateien ohne BOM unterscheidet Delphi einfach nicht weiter und gibt den default-Wert (Windows:
ANSI) zurück.
Warum erkennt Linux gleich mehrere Kodierungen als UTF-8?
Bei Dateien ohne BOM unterscheidet Delphi einfach nicht weiter und gibt den default-Wert (Linux: UTF8; bei mir jetzt geändert auf
ANSI) zurück.
Warum wird
ASCII unter Windows nicht als
ASCII erkannt?
Warum erkennt Linux gleich mehrere Kodierungen als UTF-8?
ASCII umfasst die Zeichen mit den Codes von 0 bis 127 und ist damit eine Untermenge von
ANSI. Auch die ersten 128 Zeichen bei UTF-8 sind identisch mit
ASCII.
Danke für die Hilfe!