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 是按行讀取的。有換行則會被截斷。