Я пользуюсь такой функцией перекодировки из Win-1251 в UTF-8 (написал сам):
function win2utf(s: string): string;
var len, ch, i: integer;
st: string;
begin
st:=''; len:=Length(s)-1;
for i:=0 to len do begin ch:=ord(GetChar(s,i)); if ch>122 then st:=st+chr(ch+1104) else st:=st+chr(ch); end;
win2utf:=st;
end;