URL Decoder
Paste a link, a query string or a value full of %2F, %3D and %C3%A9 and read it as plain text right away. Form data with + for spaces, double-encoded strings and links copied from analytics tools are all handled.
- Free
- No upload
- No sign-up
CSV to JSON and JSON to CSV
Quoted fields, line breaks inside cells, semicolon CSV from Excel and JSON Lines are handled.
Base64 encoder and decoder
UTF-8 safe for accents and emoji. Decoding ignores line breaks and missing padding.
Color converter: HEX, RGB and HSL
Type or paste a color in any field, or use the picker. All formats update together.
WCAG contrast
AA needs 4.5:1 for normal text and 3:1 for large text (24px, or 19px bold). AAA needs 7:1 and 4.5:1.
Number base converter
Binary, octal, decimal and hexadecimal. Very large and negative whole numbers are supported.
Spaces and underscores are ignored, and the prefixes 0b, 0o and 0x are accepted. Negative numbers keep a minus sign; for values that fit in 8 to 128 bits the two’s complement form is shown too.
Text case converter
Accented letters such as á, ž and ľ are kept, and ß becomes ẞ in capitals. Code cases are applied line by line.
URL encoder and decoder
Percent-encode text for links and query strings, or decode %20-style text back.
Component encodes every reserved character (/ ? & = #), for a single query value or path part. Full URL keeps the URL structure readable.
Unix timestamp converter
Seconds or milliseconds are detected automatically from the number of digits.
Current Unix time: —
Without Z or an offset such as +02:00, the date is read in your time zone (local).
- Unix time (seconds)
—- Unix time (milliseconds)
—- ISO 8601, UTC
—- ISO 8601, your time zone
—- Readable, your time zone
—- Relative
—
Runs entirely in your browser. Your data, files and text are never uploaded.
Turning %XX sequences back into text
Every %XX sequence is a byte written in hexadecimal. The decoder collects consecutive bytes and reads them as UTF-8, so %C5%BE becomes the single letter ž and %F0%9F%98%80 becomes an emoji, instead of the strange à and Å characters you get from tools that decode byte by byte.
Tracking links, redirect parameters and log files often contain a whole address hidden inside another one, for example ?url=https%3A%2F%2Fshop.example%2Fcart. Component decoding reveals it in one step. If the output still shows %25 or %20, the text was encoded twice; press "Use result as input" and decode it again.
Choose Full URL when you want to keep the structure of a link intact: escaped reserved characters such as %2F (slash) and %26 (ampersand) stay as they are, so the decoded link still points to the same place. HTML forms send spaces as +, so switch on "Treat + as a space" for submitted form data and most query strings.
How to use the URL Decoder
- Paste the encoded link, query string or value into the input field.
- Leave Component selected to decode everything, or pick Full URL to keep slashes and ampersands escaped.
- Turn on "Treat + as a space" if the text comes from a submitted form or a search query.
- Copy the decoded text, or press "Use result as input" to decode a double-encoded string once more.
Frequently asked questions
Why do I see %25 after decoding?
%25 is an encoded percent sign, which means the text was encoded twice. Decode the result one more time to get the original.
Why does the decoder report malformed input?
A % must be followed by two hexadecimal digits, and the bytes must form valid UTF-8. A truncated copy or a literal % sign in the text breaks this, and the message points to the spot.
Should + become a space?
Only in data sent by HTML forms and in many query strings. In paths and most other places a + is a real plus sign, so the option is off unless you turn it on.
Is the decoded link opened or visited?
No. The text is only converted in this browser tab; nothing is fetched, opened or sent anywhere.
