这篇关于Base64 URL的Wiki文章说
“出于这个原因,存在修改后的Base64 for URL变体, no padding'='将被使用,标准Base64的'+'和'/'字符分别被替换为' - '和'_',因此不再需要使用URL编码器/解码器,并且对编码值的长度没有影响,保留相同的编码形式,以便在关系数据库,Web表单和对象标识符中使用一般“。
当我尝试使用ASP.NET删除填充时,我收到查询字符串时出错。如何解释缺失的填充?
答案 0 :(得分:3)
string encoded = GetBase64FromQueryString();
encoded = encoded.PadRight(NextMultiple(encoded.Length, 4), '=');
...
static int NextMultiple(int value, int multiple)
{
int r = value % multiple;
return value + (r != 0 ? multiple - r : 0);
}