Free Online Tool

URL Encoder & Decoder

Encode text for a URL or decode percent-encoded text. Choose where the value will be used so separators and spaces are handled correctly.

Encode text for a URL or decode percent-encoded text. Choose where the value will be used so separators and spaces are handled correctly.

What do you want to do?

Encode one value to insert into a URL parameter — & = ? # are encoded so they stay data, never delimiters. Example: fish & chips → fish%20%26%20chips

0 characters · 0 B of 4.77 MB allowed

Your result will appear here after you press Convert (Encode).

Everything runs in your browser — text, filenames, URLs, query tokens and files never leave your device. Nothing is uploaded, stored, logged, or shared. Closing the tab removes everything.

Choose Encode or Decode, pick where the value will be used, then type text to begin.

How to use this URL encoder

Encode text for a URL or decode percent-encoded text. Choose where the value will be used — query parameter value, full URL, path segment, or form data — so separators and spaces are handled correctly. Everything runs in your browser — nothing you type or upload leaves your device.

Which mode to use: a search-box value or one query parameter uses Query parameter value (spaces become %20, e.g. fish & chips becomes fish%20%26%20chips); a pasted link uses Full URL (structure ://, /, ?, &, # is preserved, and any reserialization normalizing casing or encoding is reported); one folder or file name uses Path segment (/ becomes %2F, e.g. a/b becomes a%2Fb); an HTML form payload or query string uses Form data (spaces become +, literal plus signs become %2B, and repeated keys like tag=a&tag=b are preserved).

How to encode each part: for a query value, paste the value (not the whole URL), press Convert, and paste the output after ?key=. For a path segment, encode one segment at a time and join them with / — or use Full URL mode for a whole path. For a full URL, paste the complete link with https:// and press Convert. For form data, spaces become + and a literal + in data must be written %2B.

Worked examples: a query value encodes “a b” as a%20b while form data encodes it as a+b — decoding a+b gives “a b” only in form mode, elsewhere + stays a plus. ?q=fish%26chips is one value (fish&chips) while ?q=fish&chips is two parameters. Encoding the segment “a/b” gives a%2Fb (one segment); a full path /a/b keeps the separator — decoding %2F to / changes routing, so inspect before changing. Unicode such as café and emoji encodes as UTF-8 bytes (caf%C3%A9) and round-trips exactly. Encoding the four characters %20 gives %2520; this tool decodes once by default and offers Decode again for nested encoding.

Batch mode, inspector and files: turn on “Process each line independently” to convert a list line by line with order preserved and per-line errors. The Full URL inspector only parses text — it never navigates, fetches or previews the URL, and editing query parameters rebuilds the URL without altering the pasted original. Files up to 5,000,000 bytes (5 MB) are size-checked before anything is read. Nothing is uploaded, stored, logged or shared — closing the tab removes everything.

FAQs

What does “invalid percent escape at character N” mean?

Every “%” must be followed by two hexadecimal digits. The message gives the exact character offset (plus line and column for multi-line input) — for example a trailing “%” or “%2G”. Write a literal percent sign as “%25”.

What is an invalid UTF-8 sequence?

Percent escapes carry UTF-8 bytes, and multi-byte characters arrive in groups (for example “é” is “%C3%A9”). A truncated group such as “%E2%82” without its final byte cannot be text. This tool reports the position instead of silently showing replacement characters as if decoding had succeeded.

When should I decode more than once?

Almost never by hand: decoding happens once by default. If a value was encoded twice (you see “%25” sequences such as “%2520”), the tool offers “Decode again” and shows each intermediate result. Automatic recursion is opt-in, capped at 16 rounds, and always shows its step count.

Does my text or file leave my browser?

No. Conversion runs on your device (in a Web Worker for large inputs). Nothing — input, output, filenames, URLs, query tokens, or files — is sent to a server, analytics, error reporting, or third party, and nothing is saved to localStorage, cookies, a database, or a shareable link.

What are the file and paste limits?

Source files are limited to 5,000,000 bytes (5 MB). The size is checked before anything is read, so an oversized file is rejected immediately without partial reads or truncation. Pasted encoded text and decoded byte output are bounded by the same 5 MB processing limit so pasted text cannot bypass it.

Does percent-encoding make a URL safe or secret?

No. Encoding only changes how characters travel inside a URL — anyone can decode it instantly. It does not encrypt, authenticate, or make a link trustworthy. Never paste a link you do not trust into a browser, and never put secrets in a URL.

Runs entirely in your browser — nothing you type or upload leaves your device.

Keep exploring

Related tools

Word Counter

Count words, characters, sentences and reading time instantly.

Open tool

Case Converter

Convert text between upper, lower, title and sentence case.

Open tool

Slug Generator

Turn any headline into a clean URL-friendly slug.

Open tool

Need something custom? Contact me