URL encoder & decoder for safe, working links.
Percent-encode spaces, punctuation, and unicode characters so a URL, query string, or form value survives being copied, pasted, and shared — or decode one to see what it actually contains.
Encode / decode
Shorten your encoded link so it's easy to share.
Long URLs full of %-encoded characters are hard to read and easy to break when copied. Turn any link into a short, branded one with click tracking built in.
What is URL encoding?
A way of representing characters that aren't safe inside a URL using a percent sign followed by a hex code.
URLs can only contain a limited set of characters from the ASCII alphabet. Anything outside that set — spaces, accented letters, emoji, or symbols like & and ? that already mean something in a URL — has to be rewritten so it doesn't break the link or get misread by a server.
URL encoding, also called percent-encoding, replaces each unsafe character with a % followed by its two-digit hexadecimal code. A space becomes %20, an ampersand becomes %26, and so on. The rest of the URL is left untouched.
This matters most inside query string values — anywhere after a ? or & — since that's where user input, search terms, and dynamic data usually end up.
coffee%20&%20cake
Common characters and their encoded form.
These are the characters you'll run into most often inside URLs and query strings.
| Character | Encoded | Character | Encoded |
|---|---|---|---|
| Space | %20 | & | %26 |
| ? | %3F | # | %23 |
| % | %25 | + | %2B |
| / | %2F | : | %3A |
| = | %3D | @ | %40 |
| " | %22 | ' | %27 |
| < | %3C | > | %3E |
Where you'll need this.
Search queries
Turn a search phrase with spaces and punctuation into a safe ?q= value for any search engine or site.
Redirect parameters
Pass a full URL as a value inside another URL — like a ?redirect_to= or ?return_url= — without breaking the outer link.
Tracking links
Safely include campaign names, emails, or other data with spaces or symbols inside a UTM or affiliate link.
API requests
Format query parameters correctly when constructing REST API calls or webhook URLs by hand.
Non-Latin text
Encode names, addresses, or search terms written in Cyrillic, Chinese, Arabic, or any other script.
Decoding mystery links
Paste in a long, %-encoded link someone sent you and read it back in plain, human-readable text.
Encode or decode in three steps.
Paste your text
Drop in a plain string to encode, or a percent-encoded URL to decode.
Pick a mode
Switch between Encode and Decode, and choose whether spaces become %20 or +.
Copy the result
Grab the output and drop it straight into your link, query string, or code.
Common questions
What's the difference between encodeURI and encodeURIComponent? +
encodeURIComponent encodes almost every special character, including /, ?, and & — use it for a single value going into a query string. encodeURI leaves those characters alone since they're structural, so use it for an entire URL you don't want to break. This tool's "encode reserved characters" option controls that behavior.
Should spaces be %20 or +? +
%20 is the correct general-purpose encoding and works everywhere, including URL paths. A "+" for spaces is a legacy convention specific to form submissions (application/x-www-form-urlencoded) and only applies inside query strings — it will not work in a URL path.
Does encoding a URL change where it points? +
No. Encoding only changes how characters are represented in text — browsers and servers decode them back before using the value. A correctly encoded URL points to exactly the same place as its unencoded version.
Why does my link break when I paste it somewhere? +
Unencoded spaces, quotes, or symbols in a URL can get cut off or misread by chat apps, spreadsheets, and some browsers. Encoding those characters first — or shortening the link — keeps it intact wherever it's pasted.
Can I encode an entire URL, not just one value? +
Yes, but turn off "encode reserved characters" first — otherwise the ://, ?, and & that make it a working link get encoded too and it stops functioning as a URL.