Q:

How do I replace special characters in a URL? 

This is probably very simple, but I simply cannot find the answer myself :( 
Basicaly, what I want is, given this string:
"http://www.google.com/search?hl=en&q=c# objects"
I want this output:
http://www.google.com/search?hl=en&q=c%23+objects
I'm sure there's some helper class somewhere buried in the Framework that takes care of that for me, but I'm having trouble finding it. 
EDIT: I should add, that this is for a Winforms App. 

A:

HttpServerUtility. UrlEncode(string)
Should sort out any troublesome characters
To use it you'll need to add a reference to System. Web (Project Explorer > References > Add reference > System. Web)
Once you've done that you can use it to encode any items you wish to add to the querystring:
System. Web. HttpUtility. UrlEncode("c# objects");

A:

If you don't want a dependency on System. Web here is an implementation of "UrlEncode" I have in my C# OAuth Library (which requires a correct implementation - namely spaces should be encoded using percent encoding rather the "+" for spaces etc.) 
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();
}

For reference
http://en.wikipedia.org/wiki/Percent-encoding

A:

@Wilfred Knievel has the accepted answer, but you could also use Uri. EscapeUriString() if you wanted to avoid the dependency on the System. Web namespace.