【发布时间】:2014-02-25 21:39:55
【问题描述】:
我正在 Delphi XE5 中开发 android applicatin,我需要对一些字符串进行 BASE64 编码和解码。
这个函数对英文字符很好用,但是我想编码 €、$ 或任何特殊的 iso8859-2 字符编码不起作用。
知道如何解决吗?
我找到了BASE64单元http://www.delphipraxis.net/991-base64-mime-en-decoding.html
但是 FireMonkey 是否支持 AnsiString 和 PAnsiChar 类型以及使用该类型需要包含哪些单元?
我的代码
uses IdCoderMIME;
...
function Encode64(S: string): string;
var
IdEncoderMIME: TIdEncoderMIME;
begin
try
IdEncoderMIME := TIdEncoderMIME.Create(nil);
Result := IdEncoderMIME.EncodeString(S);
finally
IdEncoderMIME.Free;
end;
end;
function Decode64(S: string): string;
var
IdDecoderMIME: TIdDecoderMIME;
var
IdDecoderMIME: TIdDecoderMIME;
begin
try
IdDecoderMIME := TIdDecoderMIME.Create(nil);
Result := IdDecoderMIME.DecodeString(S);
finally
IdDecoderMIME.Free;
end;
end;
【问题讨论】:
-
BASE64 是一组字节的字符串表示形式。要从字符串中获取字节,您还必须查看字符串的编码(ASCII、ANSI、UTF8、...)以及目标支持/期望的编码。
TEncoding.GetBytes。顺便说一句,这与 FireMonkey不相关 -
您在应用中使用 Indy 吗?
标签: android delphi base64 delphi-xe5