Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
900 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: DELPHI & TInifiles ASCII und UTF16

  Alt 4. Jul 2024, 12:37
Eine Heuristik zur Erkennung der Codierung kann nie 100%ig funktionieren - und nichts anderes versuchst du hier ja. Besser wäre es imho, für die Ini-Datei ein klar definiertes Format anzugeben. Sinnvoll wäre imho UTF-8 und die Verwendung von TMemInifile im Code.

Dann bringst du glaube ich auch ANSI und ASCII durcheinander. Die TIniFiles unterstützen afaik durchaus mehr als ASCII - Umlaute sind z.B. kein Problem, solange die Ini-Datei nicht auch auf anderen Systemen mit anderen Ländereinstellungen gelesen wird. Deine Funktion IsAsciiOrUtf16WithoutBOM macht dann auch nicht das, was sie soll, denn mit
Delphi-Quellcode:
if Buffer[i] > 127 then
begin
  Exit(False); // Non-ASCII character found
end;
wird z.B. bei so einer Ini (die als UTF-16 ohne BOM gespeichert wird)
Code:
[Greetings]
value1=Hallöle
trotzdem false zurückgeliefert, weil das "ö" als $F6 $00 kodiert wird - und $F6 ist größer als 127.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat