在我的一个程序中,我必须处理加密的Url。我想将参数保存为字符串,我想保留特殊字符
string input_url ="domain.com/auth?token=%2FhKjSuSAO6ctIrgokvB9hmHJPlHQXqTmpuH9fEPWp8w";
我想以解码的形式处理令牌查询字符串 我尝试了代码
string input_url ="domain.com/auth?token=%2FhKjSuSAO6ctIrgokvB9hmHJPlHQXqTmpuH9fEPWp8w";
val = System.Net.WebUtility.HtmlDecode(input_url.ToString());
val2 = val.Split('=')[1];
但我得到的值为%2FhKjSuSAO6ctIrgokvB9hmHJPlHQXqTmpuH9fEPWp8w
我想要的是val=/hKjSuSAO6ctIrgokvB9hmHJPlHQXqTmpuH9fEPWp8w
(将%2F
保留为/
,就像存在其他特殊字符一样)
我该怎么做?
答案 0 :(得分:6)
您正在使用错误的解码器;这是一个网址,而不是HTML,因此请尝试UrlDecode
:
string input_url ="domain.com/auth?token=%2FhKjSuSAO6ctIrgokvB9hmHJPlHQXqTmpuH9fEPWp8w";
val = System.Net.WebUtility.UrlDecode(input_url);
val2 = val.Split('=')[1];
这会得到val2
的结果:
/hKjSuSAO6ctIrgokvB9hmHJPlHQXqTmpuH9fEPWp8w
HTMLDecode
专为HTML引用而设计,例如&
。
答案 1 :(得分:2)
System.Net.WebUtility.UrlDecode仅适用于.Net 4客户端配置文件 string value_string = Uri.UnescapeDataString(e.Url.Query);将为.net 4应用程序工作