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

时间:2012-03-12 14:23:23

标签: c# base64

我正在尝试预测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

1 个答案:

答案 0 :(得分:26)

那将是

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