TNetEncoding.Base64.Encode包含CR LF

时间:2018-10-16 13:46:57

标签: delphi

这个行为是故意的吗?

...
uses
 System.NetEncoding;

...

var
  s: String;
begin
  s := TNetEncoding.Base64.Encode('asjjdhgfaoösjkdhföaksjdfhöasjdfhasdkjasdhfköajsjhdfajssssd');
end;

s包含CR LF:

YXNqamRoZ2Zhb8O2c2prZGhmw7Zha3NqZGZow7Zhc2pkZmhhc2RramFzZGhma8O2YWpzamhkZmFq '#$ D#$ A' c3Nzc2Q =

Local variables

这个问题是我所有的http调用都返回了错误的请求。对方不希望这样。

1 个答案:

答案 0 :(得分:9)

在这种情况下,您可以自己创建带有适当参数的实例:

var
  s: String;
  base64: TBase64Encoding;
begin
  base64 := TBase64Encoding.Create(0); // CharsPerLine = 0 means no line breaks
  try
    s := base64.Encode('asjjdhgfaoösjkdhföaksjdfhöasjdfhasdkjasdhfköajsjhdfajssssd');
  finally
    base64.Free;
  end;
end;