URL tool

URL encode/decode

Encode text into URL-safe percent encoding, or decode percent-encoded values back to readable text. Choose component-value or full-URL mode. Processing stays in your browser.

Input

Source text

Output

Converted result

Usage examples

Use Component value for one query value such as `spring sale & gifts`; spaces and reserved punctuation are escaped so the value cannot split the query. Use Full URL when you need to preserve `https://`, `/`, `?`, `&`, `=`, and `#` while encoding unsafe characters inside the address. Decode once to inspect Korean text or a tracking parameter before editing it.

Readable errors

A percent escape must contain two hexadecimal digits, and a sequence of escapes must decode to valid UTF-8. Malformed input leaves the result blank and identifies the broken sequence and position instead of returning replacement characters. This is useful for finding truncated values such as `%E0`, but it does not prove the surrounding URL is trustworthy or reachable.

Limitations

Each run performs one encode or decode pass, which avoids silently double-decoding nested values. In query strings, `+` can mean a space in form encoding but is a literal plus in normal percent encoding; enable the checkbox only when that convention applies. Full-URL mode preserves structure characters and is not a URL validator, redirect checker, or safety scanner.

Privacy

Encoding and decoding run locally in this browser tab, and the page does not send the text or URL to a server. That protects input from this tool's backend because there is no processing backend; it does not make a destination safe. Check decoded hosts and parameters before opening or sharing an unfamiliar link.

Percent-encode text for URLs or decode encoded values back to readable Unicode. Choose component or full URL mode. Component mode can optionally map spaces to + for form-style query values. Malformed percent sequences and broken UTF-8 byte runs surface as readable errors instead of silent mojibake.

Verified examples

Input Mode Output
한글 검색 component %ED%95%9C%EA%B8%80%20%EA%B2%80%EC%83%89
한글 검색 component + plus %ED%95%9C%EA%B8%80+%EA%B2%80%EC%83%89
%ED%95%9C%EA%B8%80 component decode 한글

Encoding A&B in component mode turns & into %26, which keeps a single query parameter intact. Full URL mode is for polishing an already structured URL without destroying :/?#&= separators.

Build a query safely

  1. Hold raw values separately (q, sort, …).
  2. Encode each value in component mode.
  3. Assemble ? and & yourself—or verify what URLSearchParams emits.
  4. Decode only on the receiving side, once.

Common failures: using full-URL encoding for a single value (ampersands survive), double-encoding (%25 appears), and decoding + as space inside paths (C++ breaks). Round-trip decode→encode to see whether your plus/space policy matches the server.

Use the workbench when the next step is JSON or hashing. Keep production tokens out of the box.

Debugging checklist

  • Does the address bar show Unicode while logs show percent-encoding? Both can be correct.
  • Did someone encode an entire URL with component mode? Then https%3A%2F%2F… appears and the link dies.
  • Do you see %25 sequences? Double-encoding is likely.
  • Does + appear in a path? It is a plus character, not a space, unless a form decoder wrongly runs.

Internationalized domain names use Punycode on the host, not percent-encoding. A single URL may combine Punycode in the host with percent-encoding in the path and query. Decode the right segment with the right tool mode.

When integrating, prefer URL and URLSearchParams in code, and use this page to explain surprising encodings to teammates. Keep live session tokens out of the input box even though processing is local.

Length planning for Korean queries

Each Hangul syllable expands to three UTF-8 bytes and nine characters of %HH text. A 100-syllable query value can approach 900 characters encoded. Gateways with 2–8 KiB request-line limits feel that quickly. Prefer opaque ASCII ids in public URLs when you control the schema, and keep human-readable Hangul for display only.

Component-encode every value, never the structural punctuation you still need. That single rule eliminates most homemade URL bugs.

Form encoding versus path encoding

Query strings inherited from HTML forms may use + for spaces. Paths should keep %20 and encode plus as %2B. This tool exposes both policies so you can match the peer you are talking to instead of guessing from a single browser address bar.

When you paste a full URL into component mode by mistake, stop and switch modes rather than trying to undo the damage by hand.

FAQ

Component mode versus full URL mode?

Component mode follows encodeURIComponent/decodeURIComponent. Full URL mode follows encodeURI/decodeURI and leaves more reserved characters intact.

Can spaces become plus signs?

Yes in component mode via the space-as-plus option. Do not treat plus as space inside path segments.

Is decoding recursive?

No. One pass only. %252F becomes %2F, not /.

Is input uploaded?

No. Encoding and decoding stay in the browser.