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

Posted 不能富贵难成大器皆因懒, 胸无大志庸庸碌碌只为闲。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 是按行读取的。有换行则会被截断。

 

技术分享

技术分享

 

 技术分享

 

技术分享

 技术分享

技术分享

 

以上是关于BASE64 官方方法,我自己用的,注意记住换行问题。的主要内容,如果未能解决你的问题,请参考以下文章

Base64编码后包含换行符问题

Java Base64加码解码 Base64.encodeBase64 ( ) 和 new BASE64Enccoder( ).encode( )区别

Linux shell:去除换行符的 Base64 解码

Java里,,啥是二进制? 啥是base64?他们有啥区别?

delphi java 有没有能相互base64编码的方法啊

微信小程序 base64格式图片的展示保存及pdf打开