Delphi xe2编码/解码基础64

img*_*one 2 delphi encode decode base delphi-xe2

有人可以提供一个如何使用EncodeBase64DecodeBase64来自库的示例Soap.EncdDecd吗?我正在使用Delphi xe2

RRU*_*RUZ 6

您没有指定尝试编码或解码的数据类型.该DecodeBase64EncodeBase64功能使用EncodeStreamDecodeStream内部,在理论上可以使用基于流这些功能进行编码或解码任何类型或数据(之后的使用流来保存数据).

对于编码/解码字符串,只需直接使用EncodeStringDecodeString函数.

function  EncodeString(const Input: string): string;
function  DecodeString(const Input: string): string;
Run Code Online (Sandbox Code Playgroud)

对于流使用EncodeStreamDecodeStream

procedure EncodeStream(Input, Output: TStream);
procedure DecodeStream(Input, Output: TStream);
Run Code Online (Sandbox Code Playgroud)

EncodeBase64的示例

function  DecodeBase64(const Input: AnsiString): TBytes;
function  EncodeBase64(const Input: Pointer; Size: Integer): AnsiString;
Run Code Online (Sandbox Code Playgroud)

例如,要编码文件并使用该EncodeBase64函数返回一个字符串,您可以尝试这一点(显然您也可以直接使用EncodeStream函数).

function EncodeFile(const FileName: string): AnsiString;
var
  LStream: TMemoryStream;
begin
  LStream := TMemoryStream.Create;
  try
    LStream.LoadFromFile(Filename);
    Result := EncodeBase64(LStream.Memory, LStream.Size);
  finally
    LStream.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

现在使用该DecodeBase64函数只传递一个已编码的字符串,该函数将返回一个TBytes(字节数组).