100% local processing - your files and data never leave your browser.
No accounts, no tracking - we don't save your credentials, files, or usage.
Free forever - donations are welcomed, but every tool is and always will be free.
Open in spirit - need a special tools..? Drop a message.
FREE TOOL · INSTANT · 100% LOCAL

URL
ENCODER

Convert text to URL-safe percent-encoding and back. Auto-detects encoded input. Supports component, full URL, form data, and raw byte encoding. Live preview as you type.

PLAIN TEXT hello world! 100% sure? price=$10 name=john& city=New York tag=café ¡hola amigo! 86 chars ENCODE DECODE URL-ENCODED hello%20world! 100%25%20sure price%3D%2410 name%3Djohn city%3DNew%20 tag%3Dcaf%C3%A9 %C2%A1hola%20 142 chars
Two-Way, Live
Type plain text on the left and watch the encoded version appear on the right - or paste encoded text and get the decoded version back. Updates as you type.
Auto-Detect Direction
Paste anything containing %-encoded sequences and the tool automatically decodes it. Otherwise it encodes. No mode-switching needed for typical use.
4 Encoding Modes
Component for query params, Full URL to keep the structure, Form for HTML forms (uses + for spaces), or Raw bytes for maximum encoding.
Query Param Table
Paste a full URL and the tool parses out each query parameter and shows you the decoded key/value pairs in a clean table - perfect for debugging API calls.
Unicode-Safe
Handles emoji, non-Latin scripts, and accented characters correctly using UTF-8. café encodes as caf%C3%A9, not garbled.
100% Local
All encoding happens in your browser. Your URLs and content never get sent anywhere. Safe for API keys, tokens, or anything sensitive in query parameters.

ENCODE OR DECODE

Type or paste in either box. The other side updates instantly.

url-encoder.php · ready LIVE

Encoding Mode

Plain text 0 chars
SWAP
URL-encoded 0 chars
Copied!

HOW IT WORKS

Browser-native encoding using encodeURIComponent and friends. No libraries, instant results.

01
Pick the right mode
For most cases, the default Component mode is what you want. Use Full URL when you need the URL structure to stay readable.
02
Type, paste, or load a sample
Paste plain text and see it encoded, or paste an encoded string and watch it auto-decode. The tool detects which way you want to go.
03
Copy the result
One-click copy to clipboard. Or just select and copy the text yourself - the result is regular text, no special formatting.

COMMON QUESTIONS

URLs can only contain a limited set of characters - basically letters, numbers, and a few punctuation marks. Anything else (spaces, accented letters, emoji, special chars) has to be "percent-encoded" - converted to a % followed by hex codes. So a space becomes %20, café becomes caf%C3%A9, and so on. This tool does that conversion in either direction.

Component - encoding a single value that goes inside a URL (like a query parameter value). Encodes everything except letters, digits, and a few unreserved chars. This is what you want 90% of the time.

Full URL - encoding a complete URL where you want to preserve the structure. Leaves : / ? # & = unencoded so the URL still looks like a URL. Use this when you have something like https://api.com/path?q=hello world and just want the spaces fixed.

%20 is the standard URL encoding for a space. Use it everywhere by default.

+ only means space inside an HTML form's submitted data (the application/x-www-form-urlencoded format). If you're working with form data, pick the Form data mode here. Outside of forms, + usually means a literal plus sign.

Your input contained a literal % character. Since % is the escape char in URLs, it has to be encoded as %25. That's expected. If you're seeing this and didn't expect to, your input might already be encoded - check that you haven't accidentally double-encoded a string.

Decode once, then paste the result back in and decode again. Each decode pass strips one layer. If you see %2520 instead of %20, that's double-encoded - decode it twice. Triple-encoded? Three times. (And you should probably ask whoever produced that string what they're doing.)

No. Encoding happens entirely in your browser using built-in JavaScript functions. Your text never gets uploaded anywhere. Safe to use with API keys, OAuth tokens, signed URLs, or any other sensitive content you might be debugging.