All systems operational
Free tool

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

Plain text
0 characters
Encoded result
0 characters

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.

No credit card required Click analytics on every link Custom branded domains
Basics

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.

example.com/search?q=
coffee%20&%20cake
%20 — encoded space
%26 — encoded ampersand
Everything else passes through unchanged
Reference

Common characters and their encoded form.

These are the characters you'll run into most often inside URLs and query strings.

CharacterEncodedCharacterEncoded
Space%20&%26
?%3F#%23
%%25+%2B
/%2F:%3A
=%3D@%40
"%22'%27
<%3C>%3E
Use cases

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.

How it works

Encode or decode in three steps.

Step 01

Paste your text

Drop in a plain string to encode, or a percent-encoded URL to decode.

Step 02

Pick a mode

Switch between Encode and Decode, and choose whether spaces become %20 or +.

Step 03

Copy the result

Grab the output and drop it straight into your link, query string, or code.

FAQ

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.