XE7中使用默认的Base64编码的一个小提示

XE7中的Base64编码单元被放到了System.NetEncoding里,但它的默认实现时,会每76个字符加一个换行,先看TNetEncoding的Base64属性的读取函数实现:

OK,我们可以看它它创建了一个TBase64Encoding的默认实例,使用的是默认构造函数。而默认构造函数我们看下:

我们看到了一个kCharsPerLine和sLineBreak两个参数。再进一步到内部编码单元(580行)有下面一段代码:

 我们看到它会自动添加了换行符。我们看下kCharsPerLine的定义:

所以,如果我们不要编码结果中存在换行符,那么我们就不应该使用默认的TNetEncoding.Base64实例来进行Base64编码,而是要自己创建一个TBase64Encoding实例来实现,参考代码如下:

 

分享到:

0 条评论

沙发空缺中,还不快抢~