Base-64 字符数组或字符串的长度无效
时间: 2024-01-05 20:01:59 浏览: 73
如果你收到 "Base-64 字符数组或字符串的长度无效" 的错误消息,可能是因为 Base64 字符串的长度不是 4 的倍数。在进行 Base64 解码之前,确保输入的 Base64 字符串长度是有效的。
以下是一个示例代码,用于验证并在需要时进行填充以使其长度为 4 的倍数:
```csharp
string base64EncodedString = "SGVsbG8gd29ybGQh"; // 要解码的 Base64 字符串
// 检查字符串长度是否为 4 的倍数,如果不是,则进行填充
int paddingLength = base64EncodedString.Length % 4;
if (paddingLength > 0)
{
base64EncodedString += new string('=', 4 - paddingLength);
}
byte[] data = Convert.FromBase64String(base64EncodedString); // 解码 Base64 字符串为字节数组
string decodedString = Encoding.UTF8.GetString(data); // 将字节数组转换为字符串
Console.WriteLine(decodedString); // 输出解码后的字符串
```
在上述代码中,我们首先计算了 Base64 字符串的填充长度(即余数),然后使用 `new string('=', 4 - paddingLength)` 在字符串末尾添加相应数量的填充字符 "="。这样确保了 Base64 字符串的长度为 4 的倍数。然后,我们继续进行解码和转换操作。
请注意,Base64 字符串的有效长度应该是 4 的倍数,否则可能会导致解码错误。希望这能解决你的问题!如果你还有其他疑问,请随时提问。