这可能很简单,但我自己找不到答案:(
基本上,我想要的是,给定这个字符串:
“http://www.google.com/search?hl=en&q=c#个对象”
我想要这个输出:
http://www.google.com/search?hl=en&q=c%23+objects
我确信在框架中埋藏了一些辅助类,它可以解决这个问题,但是我找不到它。
编辑:我应该补充一点,这是针对Winforms App。
答案 0 :(得分:15)
HttpServerUtility.UrlEncode(字符串)
应该解决任何麻烦的角色
要使用它,您需要添加对System.Web的引用(Project Explorer> References> Add reference> System.Web)
完成后,您可以使用它来编码要添加到查询字符串的任何项目:
System.Web.HttpUtility.UrlEncode("c# objects");
答案 1 :(得分:12)
如果你不想依赖System.Web这里是我在C#OAuth库中的“UrlEncode”的实现(需要正确的实现 - 即空格应使用百分比编码而不是“+”编码对于空间等。)
private readonly static string reservedCharacters = "!*'();:@&=+$,/?%#[]";
public static string UrlEncode(string value)
{
if (String.IsNullOrEmpty(value))
return String.Empty;
var sb = new StringBuilder();
foreach (char @char in value)
{
if (reservedCharacters.IndexOf(@char) == -1)
sb.Append(@char);
else
sb.AppendFormat("%{0:X2}", (int)@char);
}
return sb.ToString();
}
答案 2 :(得分:9)
@Wilfred Knievel已接受答案,但如果您想避免依赖Uri.EscapeUriString()
命名空间,也可以使用System.Web
。
答案 3 :(得分:6)
查看Server.UrlEncode