Sto provando a prevedere la rappresentazione della stringa di dimensioni di un array di byte codificati in base64.Prevedere la dimensione in byte di un byte codificato in base64 []
Mi è venuta in mente la formula seguente, tuttavia la lunghezza effettiva di encodedString
è 4 maggiore di base64EncodedSize
.
L'intera idea qui è calcolare/prevedere quale sarebbe la dimensione della stringa codificata per un dato byte[]
. Preferirei non convertire lo byte[
] in una stringa 64 di base solo per determinare la sua lunghezza.
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
Oh cara. La divisione dei numeri interi prima di moltiplicare? E ti chiedi perché il risultato è troppo piccolo? – adelphus
Wow, non posso credere di non averlo notato. Sono sempre le cose semplici. :) Grazie. –