预测base64编码字节[]的字节大小

本文关键字:字节 base64 编码 预测 | 更新日期: 2023-09-27 18:27:35

我正在尝试预测base64编码字节数组的大小字符串表示。

我已经得出了下面的公式,然而实际encodedString的长度比base64EncodedSize大4。

这里的全部思想是计算/预测给定byte[]的编码字符串大小。我不希望仅仅为了确定它的长度而将byte[]转换为64进制字符串。

FileInfo pdfFile = new FileInfo(@"C:'TEMP'1.pdf");
long originalSizeInBytes = pdfFile.Length;
String encodedString = Convert.ToBase64String(File.ReadAllBytes(pdfFile.FullName));
long base64EncodedSize = (originalSizeInBytes / 3) * 4;
----------------------------------------------------------------------------------
- Results -
-----------------------------------------------------------------------------------
  originalSizeInBytes                           913663  long
  base64EncodedSize                             1218216 long
  encodedString.Length                          1218220 int
  base64EncodedSize                             1218216 long
  encodedString.Length - base64EncodedSize      4       long

预测base64编码字节[]的字节大小

这将是

long base64EncodedSize = 4 * (int)Math.Ceiling(originalSizeInBytes / 3.0);