Добрый день,
Теперь он в качестве параметра принимает объект другого класса, а именно интерфейса IIdTextEncoding, который описывает основные методы по работе с потоком.
Естественно, что этот интерфейс вам не нужно реализовывать, а нужно найти его реализацию для UTF8 кодировки.
Собственно смотрим в IdGlobal.pas и видим там глобальные процедуры по получению нужных реализаций в требуемых кодировках:
IdTextEncodingType = (encIndyDefault, encOSDefault, enc8Bit, encASCII, encUTF16BE, encUTF16LE, encUTF7, encUTF8);
function IndyTextEncoding(AType: IdTextEncodingType): IIdTextEncoding; overload;
function IndyTextEncoding(ACodepage: Word): IIdTextEncoding; overload;
function IndyTextEncoding(const ACharSet: String): IIdTextEncoding; overload;
{$IFDEF DOTNET}
function IndyTextEncoding(AEncoding: System.Text.Encoding): IIdTextEncoding; overload;
{$ENDIF}
{$IFDEF HAS_TEncoding}
function IndyTextEncoding(AEncoding: TEncoding): IIdTextEncoding; overload;
{$ENDIF}
function IndyTextEncoding_Default: IIdTextEncoding;
function IndyTextEncoding_OSDefault: IIdTextEncoding;
function IndyTextEncoding_8Bit: IIdTextEncoding;
function IndyTextEncoding_ASCII: IIdTextEncoding;
function IndyTextEncoding_UTF16BE: IIdTextEncoding;
function IndyTextEncoding_UTF16LE: IIdTextEncoding;
function IndyTextEncoding_UTF7: IIdTextEncoding;
function IndyTextEncoding_UTF8: IIdTextEncoding;
Тут либо используем конкретный метод IndyTextEncoding_UTF8, либо же используем вариант через:
IndyTextEncoding(IdTextEncodingType.encUTF8)