我正在尝试预测base64编码字节数组的大小字符串表示.
我已经提出了下面的公式,但实际的长度encodedString比4大base64EncodedSize.
这里的整个想法是计算/预测给定的编码字符串大小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
Run Code Online (Sandbox Code Playgroud)
Ant*_*lev 27
那将是
long base64EncodedSize = 4 * (int)Math.Ceiling(originalSizeInBytes / 3.0);
Run Code Online (Sandbox Code Playgroud)