標準方法進行解碼之後我有時在我的代碼損壞,這是我無法理解,因爲這種情況產生具有相似的輸入這樣的錯誤。腐敗基地-64串使用的C#
例如,在我的ASP.NET項目中,我將一些得到的結果爲Base64,如:
if (currentCert == String.Empty) Response.Redirect("~/Registration.aspx?" +
Convert.ToBase64String(Encoding.UTF8.GetBytes("error=noEcpSelected")));
所以...一個情況(僅在GetBytes會的最後一個字符串參數()方法chaning)...我已經得到正常的結果,在其他我有沒有有效的字符串格式的例外(例如,生成它的上面的代碼):
10輸入不是有效的Base-64字符串,因爲它包含一個non-基礎64字符,多於兩個填充字符或填充字符中的非空白字符。
當我看着調試器變量,我有這樣的一個值:
"ZXJyb3I9bm9FY3BTZWxlY3RlZA=%3d"
它爲上層代碼返回
我不明白,怎麼加了3D% ?
而且奇怪的是:對於不同的字符串一個代碼做的工作不同,對於一個字符串 - OK,其他 - 一直在增加%3D或%7D ...
爲什麼?
這是URL編碼。在base64解碼之前,您應該使用URL解碼您的字符串。 – Joe 2013-05-07 12:09:51
@Joe啊..的確,非常感謝你;) – Secret 2013-05-07 12:12:26