BASE64 官方方法,我自己用的,注意记住换行问题。

TBase64Encoding.Base64.Encode(str)

TBase64Encoding.Base64.Decode(str)

注意如果str很长,base64后的结果是每76个字符自动加入一个回车换行。

所以我们再用的时候如果要去除encode后的回车的话可以这样。

TBase64Encoding.Base64.Encode(abc).Replace(sLineBreak, '', [rfReplaceAll]);

--------------------------------------------------------

unit Unit4;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.NetEncoding, Vcl.StdCtrls;

type
  TForm4 = class(TForm)
    btn1: TButton;
    mmo1: TMemo;
    btn2: TButton;
    btn3: TButton;
    lbl1: TLabel;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  abc = '我靠奥迪发啊是打飞机阿萨德飞阿萨德飞机阿萨德加咖啡安静哦无人欧安度搜福艾薇儿拉开距离竟然玩阿萨德飞机爱打架佛奥迪发阿萨德飞接口拉上京东方啊是打飞机哦呜鹅肉微软奥士大夫';

var
  Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.btn1Click(Sender: TObject);
begin
  mmo1.Lines.Clear;
  mmo1.Lines.Add(TBase64Encoding.Base64.Encode(abc));
end;

procedure TForm4.btn2Click(Sender: TObject);
var
  wokao: string;
begin
  wokao := mmo1.Lines.Text;
  mmo1.Lines.Add('--------');
  mmo1.Lines.Add(TBase64Encoding.Base64.Decode(wokao));
end;

procedure TForm4.btn3Click(Sender: TObject);
begin
  mmo1.Lines.Clear;
  mmo1.Lines.Add(TBase64Encoding.Base64.Encode(abc).Replace(sLineBreak, '', [rfReplaceAll]));
end;

end.

惨痛的经历如下:ini.readstring 是按行读取的。有换行则会被截断。

 

 

原文地址:https://www.cnblogs.com/del88/p/5901437.html