Skip to content
JustDevTools
  • JSON formatter and validator
    Format, minify and validate JSON, with the exact line and column of any syntax error.
  • JWT decoder
    Read a JWT's header and payload, with issued-at and expiry times shown as real dates.
  • Base64 encoder and decoder
    Encode and decode Base64 and Base64URL, with full Unicode support.
  • JSON to TypeScript, Zod and Java
    Paste a JSON response and get TypeScript interfaces, a Zod schema or Java classes with Jackson annotations.
  • YAML to JSON converter
    Convert YAML to JSON and JSON to YAML, with the exact line of any syntax error. Handles multi-document files.
  • Regex tester
    Test JavaScript regular expressions with live match highlighting, capture groups and replace preview.
  • URL encoder and decoder
    Percent-encode and decode URLs and query values, and break a URL into its parts and parameters.
  • Unix timestamp converter
    Convert Unix timestamps in seconds or milliseconds to dates, and dates back to timestamps.
  • Cron expression explainer
    See what a cron expression means in plain English, what each field does and the next times it will run.
  • JSON to CSV converter
    Turn a JSON array into CSV for Excel or Google Sheets, or a CSV file into JSON. Nested objects become columns.
  • UUID generator and inspector
    Generate UUID v4 and time-ordered v7 in bulk, or paste a UUID to see its version and timestamp.
  • Text diff checker
    Compare two texts line by line and see exactly what was added, removed or changed.
  • Hash and HMAC generator
    SHA-256, SHA-1, SHA-384 and SHA-512 hashes and HMAC signatures of text, in hex or Base64.
  • Markdown previewer
    Write Markdown on the left and see it rendered live on the right, with GitHub-style tables and task lists.

URL encoder and decoder

Percent-encode and decode URLs and query values, and break a URL into its parts and parameters.

Runs locally. Nothing you paste leaves this tab.

Encoded

name%3DAda%20Lovelace%20%26%20role%3Dadmin%2Fdev

URL breakdown

nameQuery parameterAda Lovelace
roleQuery parameteradmin/dev

What URL encoding does

URLs can only contain a limited set of ASCII characters. Everything else, including spaces, accented letters and characters that have a job inside a URL like &, = and ?, is written as % followed by the hex value of each UTF-8 byte. A space becomes %20 and é becomes %C3%A9. This is called percent-encoding.

Query value or whole URL?

Query value works like JavaScript’s encodeURIComponent. It encodes every reserved character, so use it for one parameter value or path segment. Encoding a&b=c gives a%26b%3Dc, which can safely sit inside ?q=….

Whole URL works like encodeURI. It leaves : / ? # & = alone so the URL still works, and only encodes spaces and non-ASCII characters. Don’t use it for parameter values: an & inside a value would split it into two parameters.

Plus signs and spaces

HTML forms send spaces as + (the application/x-www-form-urlencoded format), while the rest of the URL uses %20. If a decoded value has + where you expected spaces, turn on “Treat + as space”. If a literal plus sign is getting lost (a common bug with phone numbers like +91…), the sender needs to encode it as %2B.

Double encoding

Seeing %2520 in a URL means it was encoded twice: % itself became %25. Decode once and check the result. Usually a library is encoding parameters for you and the code encodes them again first.

In code

// JavaScript: build query strings with URLSearchParams
const qs = new URLSearchParams({ q: "café & bar", page: "2" }).toString();
// "q=caf%C3%A9+%26+bar&page=2"

// Java
URLEncoder.encode("café & bar", StandardCharsets.UTF_8); // "caf%C3%A9+%26+bar"

// Python
from urllib.parse import quote, urlencode
quote("café & bar")            # 'caf%C3%A9%20%26%20bar'
urlencode({"q": "café & bar"}) # 'q=caf%C3%A9+%26+bar'