String - UrlEncodeToBytes

Converts a string into a URL-encoded array of bytes.

Try it

public static string FileName = "test.txt";

public static void Main()
{
    string urlString = "http://test# space 123/text?var=val&another=two";
	
	//C# Extension Method: String - UrlEncodeToBytes
    var bytes = urlString.UrlEncodeToBytes();
	
	var file = FileName.ToFileInfo();
	
	// C# Extension Method: FileInfo - WriteAllBytes
	file.WriteAllBytes(bytes);

    Console.WriteLine(file.ReadAllText().UrlDecode());
}

View Source
using System;
using System.Text;
using System.Web;

public static partial class Extensions
{
    /// <summary>
    ///     Converts a string into a URL-encoded array of bytes.
    /// </summary>
    /// <param name="str">The string to encode.</param>
    /// <returns>An encoded array of bytes.</returns>
    public static Byte[] UrlEncodeToBytes(this String str)
    {
        return HttpUtility.UrlEncodeToBytes(str);
    }

    /// <summary>
    ///     Converts a string into a URL-encoded array of bytes using the specified encoding object.
    /// </summary>
    /// <param name="str">The string to encode.</param>
    /// <param name="e">The  that specifies the encoding scheme.</param>
    /// <returns>An encoded array of bytes.</returns>
    public static Byte[] UrlEncodeToBytes(this String str, Encoding e)
    {
        return HttpUtility.UrlEncodeToBytes(str, e);
    }
}