После 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

Ответить