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
相关产品推荐
相关产品推荐

