/// <summary> /// URL decode a String. /// </summary> /// <param name="url">The string to URL decode.</param> /// <param name="length">Input string length; /// use 0 for cURL to determine.</param> /// <returns>A new URL decoded string.</returns> /// <exception cref="System.InvalidOperationException"> /// Thrown if cURL isn't properly initialized.</exception> public static string Unescape(string url, int length) { EnsureCurl(); IntPtr p = External.curl_unescape(url, length); String s = Marshal.PtrToStringAnsi(p); External.curl_free(p); return(s); }