URL Encoder/Decoder

Encode and decode URLs with multiple modes and comprehensive analysis

Input & Settings

Output

Processed URL will appear here

Analysis & Info

Processing statistics will appear here

URI Component
Standard URL component encoding
Full URI
Encode entire URI
Query String
Query parameter encoding
URL Path
Path segment encoding

Common Use Cases

Basic URL Encoding

Encode spaces and special characters in URLs.

Original: https://site.com/search?q=hello world
Encoded: https://site.com/search?q=hello%20world

Path Parameters

Safely encode path segments with special characters.

Original: /users/john doe/profile
Encoded: /users/john%20doe/profile

Details

This tool helps you convert special characters into URL-safe format and vice versa. It's particularly useful when working with URLs containing special characters, spaces, or non-ASCII characters like Turkish letters (ğ, ş, ı, etc.). URL encoding replaces unsafe ASCII characters with a '%' followed by two hexadecimal digits.

More Examples

Encoding Special Characters in URLs

Original: https://example.com/search?q=mavi kalem&category=kırtasiye
Encoded: https://example.com/search?q=mavi%20kalem&category=k%C4%B1rtasiye

Spaces are converted to %20, and Turkish characters like 'ı' are encoded to their UTF-8 representation.

Encoding Turkish Domain Names

Original: https://örnek.com/ürünler
Encoded: https://%C3%B6rnek.com/%C3%BCr%C3%BCnler

Turkish characters in domain names and paths are encoded: 'ö' becomes %C3%B6, 'ü' becomes %C3%BC

Encoding Email Addresses

Original: örnek@şirket.com
Encoded: %C3%B6rnek@%C5%9Firket.com

Email addresses with special characters can be encoded for use in URLs or HTML attributes.

Encoding Query Parameters

Original: product=Beyaz Eşya&price=1000₺&filter=çamaşır makinesi
Encoded: product=Beyaz%20E%C5%9Fya&price=1000%E2%82%BA&filter=%C3%A7ama%C5%9F%C4%B1r%20makinesi

Query parameters often need encoding to handle spaces, currency symbols, and special characters correctly.

    Examples

    Component-encode a query value

    Input
    name=Ada Lovelace&role=admin!
    Output
    name%3DAda%20Lovelace%26role%3Dadmin!

    `encodeURIComponent` percent-encodes reserved characters like `=` and `&`, and spaces become `%20`, so the value is safe to drop into a query string. A few characters — `!`, `'`, `(`, `)`, `*` — are left as-is by the spec.

    Full-URL encode — preserves the URL's structure

    Input
    https://example.com/path with spaces?q=ç
    Output
    https://example.com/path%20with%20spaces?q=%C3%A7

    `encodeURI` leaves reserved delimiters (`:`, `/`, `?`, `=`, `&`) intact so the URL still parses, while encoding spaces and non-ASCII bytes.

    Decode percent-encoded text — including non-ASCII

    Input
    %E4%B8%AD%E6%96%87%20%2B%20signs
    Output
    中文 + signs

    Each `%XX` triple is one byte of UTF-8; reassembled, the percent-encoded bytes decode back to the original characters.

    About this tool

    URLs may only contain a limited set of ASCII characters, so anything else — spaces, punctuation with special meaning, or non-ASCII letters like ğ, ş and ı — must be percent-encoded, replacing each unsafe byte with a % followed by two hexadecimal digits. Getting this right matters for query strings, path segments, redirect targets and form submissions, where an unencoded & or = can silently corrupt the request.

    This tool encodes text into URL-safe form and decodes percent-encoded strings back to readable text, with modes for full-component vs. whole-URL encoding, auto-detection of which operation you need, and file support for bulk work. All conversion is client-side, so sensitive URLs and tokens never leave your browser.

    How to use

    1. Enter your text or URL

      Paste the string to encode, or a percent-encoded string to decode.

    2. Choose the mode

      Pick component encoding (for a single query value) or full-URL encoding, or let auto-detect choose.

    3. Convert

      The tool encodes or decodes instantly, handling special characters and non-ASCII text correctly.

    4. Copy the result

      Copy the URL-safe or decoded output for use in your request or code.

    Use cases

    Building safe query strings

    Concatenate `?` + `encodeURIComponent(key) + "=" + encodeURIComponent(value)` and you'll never have an unescaped `&` or `=` quietly add a second parameter.

    Passing non-ASCII text in URLs

    Email subjects, slugs with diacritics, or any UTF-8 string can ride in a URL if you percent-encode the bytes first.

    Decoding captured URLs

    When a tap or redirect gives you a `%`-heavy URL, decode the parameters to read what was actually sent — useful for debugging redirect chains and webhook URLs.

    Sending form payloads in `application/x-www-form-urlencoded`

    Both keys and values go through `encodeURIComponent` before joining with `=` and `&`, exactly as a browser serializes an HTML form submission.

    Encoding modes

    ModeWhen to use
    Component (encodeURIComponent)Encoding a single query value or path segment — encodes & = ? / #
    Full URL (encodeURI)Encoding a whole URL while preserving its structural characters
    DecodeTurning %XX sequences back into readable characters
    Auto-detectGuesses encode vs. decode from the input

    All conversion runs locally — nothing is uploaded.

    Common mistakes

    Mistake:Using `encodeURI` on a query value.

    Fix:`encodeURI` is designed for whole URLs and leaves `&`, `=`, `?`, `+`, and `#` untouched — using it on a value lets those characters break your query string. Use `encodeURIComponent` for values.

    Mistake:Double-encoding

    Fix:Encoding an already-encoded string turns `%20` into `%2520`. Encode once, as close to the wire as possible, and never touch the value in between.

    Mistake:Treating `+` as a space.

    Fix:`+` only means space in the `application/x-www-form-urlencoded` body. In a path or query string it is literal, and decoding it as space corrupts the value.

    Mistake:Forgetting to encode `#` and `?` in dynamic URL fragments.

    Fix:An unescaped `#` or `?` inside a path segment is interpreted as the start of a fragment or query — percent-encode them (or use `encodeURIComponent`) when the value isn't actually one.

    Frequently asked questions

    References & standards