【发布时间】:2017-12-05 14:48:48
【问题描述】:
我正在编写一个 C# 应用程序来解码这个字符串:
“ - W3sic3RhcnRfdGltZSI6IjAiLCJwcm9kdWN0X2lkIjoiODQwMDMzMDQiLCJ1cmwiOiIifSx7InN0YXJ0X3RpbWUiOiI3OSIsInByb2R1Y3RfaWQiOiI4NDAzNjk2MSIsInVybCI6IiJ9LHsic3RhcnRfdGltZSI6IjgyIiwicHJvZHVjdF9pZCI6Ijg0MDAzMDIwIiwidXJsIjoiIn0seyJzdGFydF90aW1lIjoiMTA5IiwicHJvZHVjdF9pZCI6IiIsInVybCI6Imh0dHBzOi8vYmxvZy5sYXJlaW5lZHVzaG9wcGluZy5jYS8yMDE3LzAxL3RyYW5zZm9ybWVyLXNlcy12aWV1eC1nYW50cy1kZS1jdWlyLWVuLTUtbWludXRlcy8ifV0 =” P>
当我将它复制/粘贴到这个在线工具中时它可以工作:https://www.base64decode.org
但是当我使用Convert.FromBase64String(str)时它会抛出异常:
System.FormatException:输入不是有效的 Base-64 字符串,因为它 包含非 base 64 字符、两个以上的填充字符,或 填充字符中的非法字符。
为什么?
【问题讨论】:
-
去掉“--”
-
这篇文章可能会回答你的问题。 stackoverflow.com/questions/15114044/…
-
@Darius 不,不是。那是来自标题或其他东西,它不在
A-Z0-9范围内 -
它们不应该是有效的。它可能适用于 base64decode.org,因为该站点在解码之前将它们删除。可以看到,如果添加或删除更多减号,输出保持不变。