C# 长度为4的倍数时,Base-64字符数组异常的长度无效

C# 长度为4的倍数时,Base-64字符数组异常的长度无效,c#,encoding,windows-phone,base64,C#,Encoding,Windows Phone,Base64,尝试解码base64编码字符串时,我获取的Base-64字符数组或字符串异常的长度无效。问题是,我正在开发移动应用程序,以最大限度地减少内存使用,应用程序逐行读取base64编码的数据,并立即将其保存以释放内存。现在的问题是,即使我检查字符串的长度是4的倍数,并且不包含无效字符,Convert.FromBase64String也会引发异常。但是,如果我读取所有数据并尝试用一个片段进行转换,转换就会成功。任何想法都将不胜感激 Upd: 哦,天哪,我发现了问题-我检查了字符串中的无效字符,但我忘记检

尝试解码base64编码字符串时,我获取的Base-64字符数组或字符串异常的长度无效。问题是,我正在开发移动应用程序,以最大限度地减少内存使用,应用程序逐行读取base64编码的数据,并立即将其保存以释放内存。现在的问题是,即使我检查字符串的长度是4的倍数,并且不包含无效字符,Convert.FromBase64String也会引发异常。但是,如果我读取所有数据并尝试用一个片段进行转换,转换就会成功。任何想法都将不胜感激

Upd: 哦,天哪,我发现了问题-我检查了字符串中的无效字符,但我忘记检查它的空白。。。
谢谢大家。

除非您也将其分块编码,否则无法解决此问题。您正在询问如何部分解码编码为完整blob的内容。这在95%的算法中是不可能的。Base64允许根据定义进行部分解码。。。每3个字节被编码成4个字符。。。因此,只要匹配A-Z A-Z 0-9+/,您就可以解码4个字符的每个卡盘。。。你能发布你的代码和输入样本吗。。。请注意,base64之类的编码与加密无关。我已使用导致异常的示例字符串更新了原始问题。