INDY10 BASE64编码
DELPHI自带的BASE64单元,在项目中使用发现非常没有效率,INDY10的好用。
uses IdCoderMIME
BASE64编码类:TIdEncoderMIME
BASE64编码接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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
解码接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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; |