17
Tôi đang cố gắng dự đoán biểu diễn chuỗi kích thước của mảng byte được mã hóa base64.Dự đoán kích thước byte của byte được mã hóa base64 []
Tôi đã đưa ra công thức dưới đây, tuy nhiên độ dài thực tế encodedString
lớn hơn base64EncodedSize
.
Toàn bộ ý tưởng ở đây là để tính toán/dự đoán kích thước chuỗi được mã hóa sẽ là cho một số byte[]
nhất định. Tôi không muốn chuyển đổi các byte[
] đến một chuỗi 64 cơ sở chỉ để xác định chiều dài của nó.
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
Ôi trời ơi. Phân tách số nguyên trước khi bạn nhân lên? Và bạn tự hỏi tại sao kết quả lại quá nhỏ? – adelphus
Chà, tôi không thể tin là mình không nhận ra điều đó. Nó luôn luôn là những điều đơn giản. :) Cảm ơn. –