You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi中是否存在无CRLF的Base64字符串编码函数?

在Delphi中实现无CRLF的Base64编码

当然有办法解决这个问题!你遇到的换行符是因为TNetEncoding.Base64默认遵循RFC 2045规范,会每76个字符插入CRLF换行。要生成不带换行的Base64结果,只需要自定义编码规则即可。

解决方案代码示例

uses
  System.NetEncoding;

function EncodeBase64WithoutCRLF(const ASourceString: string): string;
var
  CustomBase64: TBase64Encoding;
begin
  // 创建Base64编码实例,设置LineLength为0表示不添加换行
  CustomBase64 := TBase64Encoding.Create(0);
  try
    Result := CustomBase64.Encode(ASourceString);
  finally
    CustomBase64.Free;
  end;
end;

更简洁的写法

如果你不想手动管理对象,也可以直接调用重载的Encode方法,指定换行符为空、行长度为0:

Result := TNetEncoding.Base64.Encode(MyStr, '', 0);

这个写法和上面自定义实例的效果完全一致,输出的Base64字符串不会包含任何CRLF换行符。

内容的提问来源于stack exchange,提问作者zeus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:39:48