c# - how - Predecir el tamaño de un byte codificado en base64
how to encode in base64 (1)
Eso será
long base64EncodedSize = 4 * (int)Math.Ceiling(originalSizeInBytes / 3.0);
Estoy intentando predecir la representación de la cadena de tamaño de una matriz de bytes codificada en base64.
He encontrado la siguiente fórmula, sin embargo, la longitud de encodedString
real es 4 más grande que la base64EncodedSize
.
La idea general aquí es calcular / predecir cuál sería el tamaño de la cadena codificada para un byte[]
dado byte[]
. Preferiría no convertir el byte[
] en una cadena base 64 solo para determinar su longitud.
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