您好,我正在用 c# 对 base 64 中的文件进行编码,但是对于大文件,它不再起作用了。
char[] base64 = new char[miArchivo.Length];
Convert.ToBase64CharArray(miArchivo, 0, miArchivo.Length, base64, 0);
return Encoding.ASCII.GetBytes(base64);
我已经尝试过,MemoryStream
但没有奏效,问题在于我认为在 base64 中占用更多的 char[] 的大小。
每 3个字节变成 4 个字符,因为每个字符只有 7位用于编码信息。目标数组必须至少是该大小。
另请注意,如果由于大小不是 3 的倍数而还有更多字节,则需要再增加 4 个字节。也就是说,对于 5 个输入字节,您将需要 8 个输出,就像它们是 6 个一样。
您缺少考虑 char 类型的大小。
作为您的代码的替代方案,您可以执行以下操作: