解码网址并存储到包含特殊字符的字符串

时间:2013-09-06 10:17:17

标签: c# urldecode

在我的一个程序中,我必须处理加密的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保留为/,就像存在其他特殊字符一样)

我该怎么做?

2 个答案:

答案 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应用程序工作