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 加持,快人一步