Все нормально раскодируется, действительно текст приходит в UTF.
Вот пример:
function UTF(inStr: string): string;
var
x: Integer;
Result: String;
begin
Result:=inStr;
for x:=1 to Length(Result) do begin
if (ord(GetChar_(Result,x))>=192) and (ord(GetChar_(Result,x))<=255) then
Result:=StrReplace(Result,chr(ord(GetChar_(Result, x))+84
,x);
if (ord(GetChar_(Result,x))=16
then
Result:=StrReplace(Result,chr(1025),x);
if (ord(GetChar_(Result,x))=184) then
Result:=StrReplace(Result,chr(1105),x);
end;
UTF:=Result;
end;