После 2 днеи страшно е#$% нашёл, удалось :)
Нагуглил всётаки функцию WideStringToUTF8. Немношко напильником пришлось, а то под Дельфу 2009 ето, и в место Length(S) прописал Length(S) * 2 и всё заработало. Если кому интересно и надо то вот: function WideStringToUTF8(const S: string): string; begin SetLength(Result, WideCharToMultiByte(CP_UTF8, 0, @S[1], Length(S) * 2 div SizeOf(WCHAR), nil, 0, nil, nil)); WideCharToMultiByte(CP_UTF8, 0, @S[1], Length(S) * 2 div SizeOf(WCHAR), @Result[1], Length(Result) * 2, nil, nil); end; Function dbMessage(AIndex: Integer; ALanguage: PChar): PChar; Cdecl; Export; Var ReturnString :PChar; lsResult :WideString; Begin ReturnString := ib_util_malloc(1024); lsResult := 'Jānis Briška, Янис Бришка, English text'; StrCopy(ReturnString, Pchar( WideStringToUTF8(lsResult))); Result := ReturnString; End; Regards Janex