System.FormatException:'Base-64 char数组或字符串的长度无效.'

cra*_*mmy 0 c# base64 decode

我在这里用头撞墙,用这个简单的代码不起作用:

string middle = "eyJzdWIiOiJtYXR0d2ViZXIiLCJqdGkiOiJlMWVmNjc5Mi02YTBjLTQ4YWUtYmQzNi0wZDlmMTVlMDFiY2UiLCJpYXQiOjE0OTMwOTI0OTQsIm5iZiI6MTQ5MzA5MjQ5NCwiZXhwIjoxNDkzMjY1Mjk0LCJpc3MiOiJFQ29tbVdlYkFQSTIiLCJhdWQiOiJFQ29tbVdlYkNsaWVudDIifQ"

byte[] newBytes = Convert.FromBase64String(middle);
middle = Encoding.UTF8.GetString(newBytes);
Run Code Online (Sandbox Code Playgroud)

就这么简单!然而我在标题中得到了错误.

另外,我在https://www.base64decode.org/上运行它,它完美地解码.

Kar*_*nas 6

由于您提供的字符串不完全符合FromBase64String方法接受值的标准,因此您需要添加结束符号以遵循约定.它不会自动添加结束符号string.

无值字符"="用于尾随填充.s的结尾可以包含零个,一个或两个填充字符.

资源.

要修复问题,您需要添加"=="到您的结尾string.

例如: string middle = "SomeString=="