Нашёл вот это:
Код:
function IsTextUTF8(const Source: AnsiString): Boolean;
var
Chr: Byte;
I, Octets: Integer;
AllAscii: Boolean;
begin
if Source <> '' then begin
Octets := 0;
AllAscii := True;
for I := 1 to Length(Source) do begin
Chr := Byte(Source[i]);
if Chr and $80 <> 0 then
AllAscii := False;
if Octets = 0 then begin
if Chr >= $80 then begin
repeat
Chr := Chr shl 1; Inc(Octets);
until Chr and $80 = 0;
Dec(Octets);
if Octets = 0 then begin
Result := False;
Exit;
end;
end;
end else begin
if Chr and $C0 <> $80 then begin
Result := False;
Exit;
end;
Dec(Octets);
end;
end;
Result := (Octets <= 0) and not AllAscii;
end else
Result := False;
end;
А функция IsTextUnicode в Delphi7 есть "искаропки", можно юзать
Конвертация... ща найду толковое что-нибудь