Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: Textdatei Encoding festellen ohne BOM

  Alt 17. Mär 2011, 17:34
Byte Order Mark ... wurde eingeführt, um gewisse Kodierungen sicher erkennen/unterscheiden zu können.

Alles Andere ist nur Gerate und es gibt keinen Code, welche "sicher" festellen kann, in welcher Kodierung ein reiner Text vorliegt.
Man kann höchstens verschiedene Kodierungen (Unicode, UTF-8, UTF-7, ASCII, ...) prüfen und sagen "ja, der Text entspricht zumindestens den Regeln dieser Kodierung",
aber hierbei kann es bei mehreren Kodierungen "ja" heißen und bezüglich einer ANSI-Codepage kann man überhaupt nicht prüfen, da es da keine unterscheidbaren Merkmale gibt.
Bei Unicode und ANSI wird jede "ordentliche" Prüfung fast immer True liefern.

Delphi-Quellcode:
function IsAnsi(s: PByte; Len: Integer): Boolean;
begin Result := True; end;

function IsAnsi(s: PByte; Len: Integer): Boolean;
begin Result := Len mod 2 = 0; end;
PS: Auch wenn eine Prüfung z.B. sagt "ja, das ist UTF-8", dann muß es nicht UTF-8 sein, es kann z.B. auch ANSI sein, welches rein zufällig so aussieht.
$2B or not $2B
  Mit Zitat antworten Zitat