INDY10 BASE64編碼
DELPHI自帶的BASE64單元,在項目中使用發現非常沒有效率,INDY10的好用。
uses IdCoderMIME
BASE64編碼類:TIdEncoderMIME
BASE64編碼接口
type TIdEncoder = class(TIdBaseComponent) public function Encode(const AIn: string; AByteEncoding: IIdTextEncoding = nil {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF} ): string; overload; procedure Encode(const AIn: string; ADestStrings: TStrings; AByteEncoding: IIdTextEncoding = nil {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF} ); overload; procedure Encode(const AIn: string; ADestStream: TStream; AByteEncoding: IIdTextEncoding = nil {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF} ); overload; function Encode(ASrcStream: TStream; const ABytes: Integer = -1): string; overload; procedure Encode(ASrcStream: TStream; ADestStrings: TStrings; const ABytes: Integer = -1); overload; procedure Encode(ASrcStream: TStream; ADestStream: TStream; const ABytes: Integer = -1); overload; virtual; abstract; class function EncodeString(const AIn: string; AByteEncoding: IIdTextEncoding = nil {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF} ): string; overload; class procedure EncodeString(const AIn: string; ADestStrings: TStrings; AByteEncoding: IIdTextEncoding = nil {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF} ); overload; class procedure EncodeString(const AIn: string; ADestStream: TStream; AByteEncoding: IIdTextEncoding = nil {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF} ); overload; class function EncodeBytes(const ABytes: TIdBytes): string; overload; class procedure EncodeBytes(const ABytes: TIdBytes; ADestStrings: TStrings); overload; class procedure EncodeBytes(const ABytes: TIdBytes; ADestStream: TStream); overload; class function EncodeStream(ASrcStream: TStream; const ABytes: Integer = -1): string; overload; class procedure EncodeStream(ASrcStream: TStream; ADestStrings: TStrings; const ABytes: Integer = -1); overload; class procedure EncodeStream(ASrcStream: TStream; ADestStream: TStream; const ABytes: Integer = -1); overload; end;
BASE64解碼類:TIdDecoderMIME
解碼接口
TIdDecoder = class(TIdBaseComponent) protected FStream: TStream; public procedure DecodeBegin(ADestStream: TStream); virtual; procedure DecodeEnd; virtual; procedure Decode(const AIn: string); overload; procedure Decode(ASrcStream: TStream; const ABytes: Integer = -1); overload; virtual; abstract; class function DecodeString(const AIn: string; AByteEncoding: IIdTextEncoding = nil {$IFDEF STRING_IS_ANSI}; ADestEncoding: IIdTextEncoding = nil{$ENDIF} ): string; class function DecodeBytes(const AIn: string): TIdBytes; class procedure DecodeStream(const AIn: string; ADestStream: TStream); end;