Stimmungen und Gefühle beim programmieren vermeide ich, weil letztendlich macht die CPU ja doch nur was man ihr gesagt hat und nicht das was man will.
(Selbst Frauen sind da einfacher, die machen zwar selten das was man ihnen sagt, aber oft doch das was (M)man will
)
Delphi-Quellcode:
function IsUTF8(const data:TStream):boolean;
var
Value:BYTE;
begin
Result:=False;
data.Position:=0;
while(data.Position<>data.Length) do begin
Value:=GetByteAndMovePos(data);
if((Value and $c0)=$c0) and (data.Position<>data.Length) then begin
Value:=GetByteAndMovePos(data);
if((Value and $80)=$00) then exit;
end;
end;
Result:=True;
end;
Wenn dir 5Minuten für so ein paar Zeilen basierend auf #6 zu anstrengend sind, dann investiere eben weiter ständig überall sonst deine Nerven...
ps:
Sichwort "Intel-Speicherformat":
$EFBB: // MSBLSB
Result := True; // UTF-8
$BBEF: // LSBMSB
Result := True; // UTF-8
..."Was ich nicht verstehe ist, warum Google nicht voll von solchen Problemen ist"...
weil die meisten es BYTEbyBYTE auswerten und nicht als WORD, was bei IntelCPUs eben "gedreht" ist... aber alles kein Problem wenn man etwas in HEX denkt