13 / TEXT & ENCODING

URL encoder / decoder

From readable text to URL-ready characters, and back.

How to use ↓

encodeURIComponent / decodeURIComponent: convert one value. Spaces encode as %20 and plus signs as %2B.

Ready

Up to 262,144 UTF-16 code units · UTF-8 conversion

Inputs and results are not stored or uploaded. Entered addresses are never visited; results are displayed as text only.

QUICK GUIDE

One value or a complete address? Choose first.

URL encoding is not encryption. Do not use it to protect passwords or tokens.

  1. 01

    Choose the scope

    Choose Query value / path segment for one search term or filename segment, and Full URL for an entire address. Form value uses + for spaces in one value; it does not parse a query string into fields.

  2. 02

    Choose a direction and convert

    Select encode or decode, then convert. Whitespace is not trimmed and conversion runs once. Browser textareas normalize line breaks to LF; use Copy or Download to preserve decoded CR/CRLF. Editing the input or settings clears the previous result.

  3. 03

    Review, copy and save

    Copy the result or save it as UTF-8 TXT. Reverse with result moves it into the input and switches direction. Results exceeding the input limit can only be copied or downloaded.

SPACES AND PLUS SIGNS

Spaces and plus signs are different.

hello world+
→ hello%20world%2B
→ hello+world%2B (form)

Full URL example:
https://example.com/a b?q=hello world
→ https://example.com/a%20b?q=hello%20world

Behavior references: ECMAScript URI functions · WHATWG form encoding

Frequently asked questions

Is this the same as URL-safe Base64?

No. URL encoding represents UTF-8 bytes as %HH. URL-safe Base64 is a different encoding with an adjusted Base64 alphabet.

Why does full-URL decoding keep %2F?

decodeURI preserves encoded URL delimiters such as /, ?, &, = and #. Select Query value / path segment to decode %2F into /. Full URL mode does not validate addresses, convert domains to Punycode or normalize URLs.

What happens to already encoded text?

Encoding changes existing % characters into %25 too. Encoding %20 gives %2520; decoding %2520 once gives %20. The tool does not guess or recursively undo multiple encoding layers.

How is form-value decoding different?

Form decoding changes + to a space and %2B to a literal plus. The other two scopes keep + unchanged. Malformed percent escapes and UTF-8 report errors instead of being repaired with replacement characters. Other character encodings, such as EUC-KR, are not supported.

Are all special characters encoded?

Query value / path segment follows JavaScript encodeURIComponent, keeping letters, digits and - _ . ! ~ * ' ( ). Form value also encodes ! ~ ' ( ). Neither is a JSON or HTML string-escaping tool.