Hi,
hRb hat folgendes geschrieben : |
Ich möchte mein (altes D7) Programm umstellen auf Unicode, d.h. beim Öffnen/Speichern auch verschiedene Codierungen verarbeiten. |
hRb hat folgendes geschrieben : |
Beim Programmieren kann ich als TEncoding aber nur Unicode (einheilich) einstellen |
Ich habe tEncoding zwar auch noch nie verwendet (und bin auch nie bei einer XE Delphi Version angekommen) aber ich würde Vorschlagen, schreibe doch einfach mal eine Datei mit der Komponente und schaue dir den BOM danach im HexEditor an, dann weißt du was die Komponente schreibt.
Wenn du allerdings Unicodeformate allumfänglich öffnen können willst, musst du dir dann ohnehin eine andere Lösung einfallen lassen, wenn tEncoding nicht beide Varianten unterstützt.
hRb hat folgendes geschrieben : |
Und nochmal: wie kann man denn ASCII und ANSI auseinander halten, wo es keinen BOM gibt? |
Gar nicht. Wenn du eine Datei ohne BOM bekommst gehst du davon aus, dass es eine Datei ist, welche für die aktuell in deinem System konfigurierte Codepage gedacht ist. Alles andere ist nur Rätzelraten und Unicode ist das auch nicht mehr. Es sei denn, du möchtest noch
Unicode Codierungen ohne BOM erraten, einige Editoren machen das ganz passabel.
Ich kenne deinen genauen Anwendungsfall jetzt nicht, aber meist ist es das wichtigste den Nutzer saubere Wege (unicode mit BOM) anzubieten. Dann kann man ihnen gegenüber auch argumentieren, das nur diese wirklich sicherstellen, dass auch jedes Zeichen so ankommt, wie er es haben möchte.
PS: In C# ist es so, dass wenn im Namen des Ebencodings nicht anderes behauptet wird eine LE Codierung bei UTF16/32 verwendet wird. Aber ob Delphi das ähnlich macht findest wie beschrieben am leichtesten per Experiment raus.