URL Encoder and Decoder in C# / .NET — Code Examples
URL encoding (percent-encoding) replaces characters that are not allowed in URLs with a percent sign followed by their hexadecimal value. Here is how to encode and decode URL components in each language.
C# provides Uri.EscapeDataString for RFC 3986 encoding and WebUtility.UrlEncode for form-style encoding (spaces as +).
using System;
using System.Net;
string input = "hello world & foo=bar";
// RFC 3986 percent-encoding (spaces as %20) — for path segments and modern APIs
string encoded = Uri.EscapeDataString(input);
Console.WriteLine(encoded); // hello%20world%20%26%20foo%3Dbar
// Decode
string decoded = Uri.UnescapeDataString("hello%20world%20%26%20foo%3Dbar");
Console.WriteLine(decoded); // hello world & foo=bar
// Form-style encoding (spaces as +) — for HTML form POST bodies
string formEncoded = WebUtility.UrlEncode(input);
Console.WriteLine(formEncoded); // hello+world+%26+foo%3Dbar
string formDecoded = WebUtility.UrlDecode("hello+world+%26+foo%3Dbar");
Console.WriteLine(formDecoded); // hello world & foo=bar
// Build a URL with query parameters
var builder = new UriBuilder("https://example.com/search");
var qs = System.Web.HttpUtility.ParseQueryString(string.Empty);
qs["q"] = "hello world";
qs["page"] = "1";
builder.Query = qs.ToString();
Console.WriteLine(builder.Uri); // https://example.com/search?q=hello+world&page=1- Use Uri.EscapeDataString for modern REST APIs and URL path segments (encodes spaces as %20).
- Use WebUtility.UrlEncode for HTML form data and legacy APIs (encodes spaces as +).
- System.Web.HttpUtility.ParseQueryString is the cleanest way to build a query string from key-value pairs.
Need to url encode/decode without writing code? The URL Encoder and Decoder runs entirely in your browser — paste your input and get the result instantly. No signup, no install, no data sent to a server.
Open URL Encode/Decode →URL Encoder and Decoder in JavaScript / Node.js
JavaScript has two pairs of functions: encodeURI/decodeURI for full URLs and encodeURIComponent/decodeURIComponent for individual query parameter values.
URL Encoder and Decoder in Python
Python's urllib.parse module provides quote() for encoding path segments, quote_plus() for form data, and urlencode() for building query strings.
URL Encoder and Decoder in Go
Go's net/url package provides url.QueryEscape for query parameters and url.PathEscape for path segments.
URL Encoder and Decoder in Java
Use java.net.URLEncoder for encoding form parameters and java.net.URI for encoding full URLs.
URL Encoder and Decoder in PHP
PHP has urlencode() for form data (spaces as +) and rawurlencode() for URL path segments (spaces as %20). Use http_build_query() to build full query strings.
URL Encoder and Decoder in Ruby
Ruby provides CGI.escape for form-style encoding and URI.encode_www_form_component for query strings. Both are in the standard library.
URL Encoder and Decoder in Rust
Rust has the urlencoding crate for simple percent-encoding, and the url crate for full URL building and parsing.