0

我目前正在为“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)。

不知道如何解决这个问题?

任何想法 ?

4

0 回答 0