delphi base64的“坑”
delphi base64的“坑”
使用 Delphi 原生的Base64编码(System.NetEncoding 单元) ,编码后的字符串每隔76个字符会增加一个回车换行(#13#10),这样就导致和其他语言对接的时候出现问题,特别是Base64以后再进行签名,例如MD5签名,就会导致签名不一致。回车换行不容易看到,所以查找问题比较困难。
S := TNetEncoding.Base64.Encode(SourceStr);
解决方法:S := S.Replace(#13#10,'');
第二种方法就是直接使用 TBase64Encoding 类:
1 2 3 4 5 6 7 | uses system.NetEncoding;<br><br> var LEncoding: TBase64Encoding; begin LEncoding := TBase64Encoding.Create(-1, '' ); S := LEncoding.Encode(SourceStr); LEncoding.Free; end; |
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/18021927
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2023-02-19 mormot2 http路由
2022-02-19 中间件在WINDOWS开发
2022-02-19 中间件在LINUX开发
2022-02-19 客户端RESTFUL演示程序
2022-02-19 客户端二进制演示程序
2022-02-19 中间件压力测试
2022-02-19 中间件部署WINDOWS