URL Encoder / Decoder
Type plain text on the left — the encoded URL appears on the right. Type on the right — the decoded text appears on the left. Everything runs locally in your browser.
Free two-way online URL encoder and decoder. Supports two modes: encodeURIComponent (encodes all special characters, for query parameter values) and encodeURI (preserves reserved chars :/?#[]@, for full URLs).
Batch mode processes each line independently — handy for bulk-encoding lists of URLs or query parameters. All computations happen locally in the browser, no data is sent to a server.
How to use it
- Type plain text on the left — the URL-encoded version appears on the right. Paste an encoded string on the right — the decoded text appears on the left.
- Pick the mode. encodeURIComponent encodes everything except letters, digits and a few safe characters and is right for parameter values. encodeURI leaves :/?#&= intact and is right for whole addresses.
- Turn on line-by-line mode to process a list of URLs or parameters — each line is encoded on its own.
When it helps
- Debugging requests: read what is really in a query string when the log shows %D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82.
- Building links: safely put text with spaces, non-Latin letters, & or # into a parameter.
- Working with APIs: prepare a redirect_uri, callback or filter value for the address bar.
Frequently asked questions
What is the difference between %20 and a plus sign?
Both mean a space, but the plus is only valid in a form query string (application/x-www-form-urlencoded). In a path, and in general, use %20.
Why does non-Latin text turn into such long sequences?
Each Cyrillic letter takes two bytes in UTF-8 and each byte is written as %XX — six characters per letter.
What if the decoder reports an error?
The string contains an incomplete or invalid %XX sequence. Check whether the link was truncated or encoded twice.