我的代码有时会损坏,我无法理解,因为这种情况会产生类似输入的错误。
例如,在我的 ASP.NET 项目中,我在 Base64 中返回了一些 GET 结果,例如:
if (currentCert == String.Empty) Response.Redirect("~/Registration.aspx?" +
Convert.ToBase64String(Encoding.UTF8.GetBytes("error=noEcpSelected")));
所以...一种情况(只有 GetBytes() 方法中的最后一个字符串参数是 chaning )...我得到了正常的结果,在其他情况下我有关于无效字符串格式的 ax 异常(例如生成的上层代码它 ):
输入不是有效的 Base-64 字符串,因为它包含非 base 64 字符、两个以上的填充字符或填充字符中的非空白字符。
当我查看该变量的调试器时,我得到了这样一个值:
"ZXJyb3I9bm9FY3BTZWxlY3RlZA=%3d"
它的上层代码被返回
我不明白,%3d 是如何添加的?
最奇怪的是:不同字符串的一个代码的工作方式不同,对于一个字符串 - 好的,对于另一个 - 总是添加 %3d 或 %7d ...
为什么?