3

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

我怎样才能做到这一点?

4

2 回答 2

7

您使用了错误的解码器;这是一个 URL,而不是 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 实体而设计,例如&.

于 2013-09-06T10:20:17.377 回答
2

System.Net.WebUtility.UrlDecode 仅适用于 .Net 4 客户端配置文件 string value_string = Uri.UnescapeDataString(e.Url.Query); 适用于 .net 4 应用程序

于 2013-09-12T06:23:03.287 回答