This free online URL encoder and decoder converts text to and from percent-encoding (also called URL-encoding) instantly and entirely in your browser. Percent-encoding replaces unsafe characters — spaces, &, ?, =, and non-ASCII characters — with a % followed by their hexadecimal byte values, so the text can be safely placed in a URL query string or path.
Paste your text or encoded string below and click the button. Fully UTF-8 safe — supports emojis and international characters. Nothing is sent to a server.
Encode URL
Plain text → percent-encoded
URL-Encoded Output
Output will appear here…
Decode URL
Percent-encoded → plain text
Decoded Output
Output will appear here…
What is URL Encoding?
URL encoding, formally known as percent-encoding, is a mechanism defined in RFC 3986 for representing characters in a Uniform Resource Identifier (URI) that would otherwise be unsafe or have a reserved meaning. A URL can only contain a limited set of ASCII characters, so any character outside that set — including spaces, many punctuation marks, and all non-English letters — must be converted.
Each unsafe character is replaced by a percent sign % followed by two hexadecimal digits representing its byte value. For example, a space becomes %20, an ampersand & becomes %26, and the question mark ? becomes %3F. Multi-byte UTF-8 characters are encoded one byte at a time, so an emoji or accented letter expands into several percent groups.
When do you need it?
Query string parameters — when a value contains &, =, spaces, or ?, it must be encoded so the server parses the parameters correctly.
Form submissions — HTML forms submitted with the default encoding type percent-encode their fields automatically.
API requests — passing user-supplied text such as search terms in a URL requires encoding to avoid breaking the request.
International characters — non-ASCII text in links must be encoded to its UTF-8 byte sequence.
No. URL encoding replaces only unsafe characters with % sequences and leaves safe characters untouched, so encoded text remains mostly readable. Base64 transforms the entire input into a 64-character alphabet and is meant for arbitrary binary data, not URLs.
In the application/x-www-form-urlencoded format used by HTML forms, spaces are encoded as +. In a standard URI path or query, spaces are encoded as %20. This tool uses the standard %20 form.
No. All encoding and decoding runs locally in your browser using JavaScript. Your input is never transmitted, stored, or logged.