Convert.FromBase64String返回长度和无效的填充字符错误

时间:2013-07-05 08:47:32

标签: c# encoding web

我目前正在围绕“Convert.FromBase64String”函数运行。它首先抛出了字符串错误的错误,所以我使用以下代码修复了错误...

         private static byte[] DecodeFrom64(string encodedData)
    {
        System.Text.ASCIIEncoding decoder = new ASCIIEncoding();
        string returnValue = string.Empty;
        byte[] encodedDataAsBytes = null;
        int mod4 = encodedData.Length % 4;
        try
        {
            if (mod4 > 0)
            {
                encodedData = encodedData.Trim('\0');
                encodedData += new string('=', 4 - mod4);
            }
            encodedDataAsBytes = System.Convert.FromBase64String(encodedData);
            returnValue = decoder.GetString(encodedDataAsBytes);
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return encodedDataAsBytes;
    }

现在它抛出错误“s的格式无效.s包含一个非base-64字符,两个以上的填充字符,或填充字符中的非白色空格字符。”显然它在末尾添加了另一个填充字符,使字符串正确长度(乘以4)。

不确定如何解决这个问题?

有什么想法吗?

0 个答案:

没有答案