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.