Loading…
Free online URL encoder and decoder for query strings and components. Private client-side conversion.
URL Encoder/Decoder is loading — interactive editor will appear here. Use examples below to try instantly once loaded.
Press ? for keyboard shortcuts
URL encoder and decoder supporting component-level encoding (encodeURIComponent) and full-URL encoding (encodeURI). Offers 3 character set options: all characters, unreserved only, or custom selection. Includes auto-detection of whether the input is encoded or plain, multiple output displays (encoded, decoded, component-encoded), URL validation, a special character reference table, and a history of the last 50 URL conversions.
Manually encoding or decoding URLs is error-prone, especially when dealing with special characters, non-ASCII text, or nested encoding. This tool provides all encoding variants alongside validation and reference material so developers can see exactly how their URL is transformed.
This tool is part of the DevStackIO platform — a collection of free online developer tools from DevStackIO. Browse more free developer resources on DevStackIO.
Web developers, API testers, QA engineers, and anyone who constructs or debug URLs containing query strings, paths, or user-submitted values.
Paste a URL or string into the input area — the tool auto-detects if it is encoded or plain text.
Select the encoding mode: Encode (plain → encoded) or Decode (encoded → plain).
Choose the character set: All Characters, Unreserved Only (letters, digits, -._~), or Custom (select specific chars to encode).
Choose encoded output type: Full URL (encodeURI) or Component Only (encodeURIComponent).
Review the results panel showing the encoded/decoded output, the original input, and the component-encoded version.
Use the Special Characters reference table to look up the percent-encoding for any ASCII or Unicode character.
Input: "hello world & goodbye" with Encode, Component Only → Output: "hello%20world%20%26%20goodbye"Input: "https://example.com/search?q=cat%20food" with Decode, auto-detect → Output: "https://example.com/search?q=cat food"What is the difference between encodeURI and encodeURIComponent?
encodeURI encodes the full URL preserving structural characters (:/?#[]@!$&'()*+,;=). encodeURIComponent encodes all characters including structural ones, making it safe for query parameter values.
Can I decode a URL that has been encoded multiple times? Yes
but you need to decode it multiple times until no %xx sequences remain.
What is the %20 vs + difference?
%20 is the percent-encoded space; + is the application/x-www-form-urlencoded space (used in form submission, not URL encoding).
Does the tool handle Unicode characters? Yes
Unicode characters are encoded as UTF-8 byte sequences (e.g., ñ → %C3%B1).
Authoritative specifications, standards, and in-depth reading for URL Encoder/Decoder.
Component Encoded
-
Full URL Encoded
-
Free online Base64 encoder and decoder with URL-safe mode. Use as default for text; for split encode-only/decode-only URLs use base64-encoder/base64-decoder (aliases), for image files use image-to-base64. Input: text ≤10MB. Returns Base64 string or decoded text + error location. Convert instantly in your browser.
Encode/decode HTML entities (& < >). Use for HTML text; for URLs use url-encoder. Input: text ≤10MB. Returns encoded/decoded text. 100% client-side.
Convert text to binary and back. Use for binary strings; for other bases use base-converter. Input: text ≤10MB. Returns 0/1 string or decoded text. 100% client-side.
Convert text to hex and back. Use for hex encoding; for hashes use hash-generator. Input: text ≤10MB. Returns hex string or decoded text. 100% client-side.
Escape/unescape JS strings. Use for code literals; for JSON strings use json-escaper. Input: text ≤10MB. Returns escaped text. 100% client-side.
Convert images to Base64 encoded strings online for free. Use for image files only; for text use base64. Input: image file ≤10MB. Returns Base64 data URI for HTML/CSS/JS. Generate Base64 data URIs for embedding images directly in HTML, CSS, and JavaScript code.
Translate text to Morse code and back. Use for learning or signaling. Input: text ≤10MB. Returns dots/dashes or decoded text. 100% client-side.
Minify JS for production or beautify minified JS for debugging. Use for JS only; for JSON use json-formatter, for CSS use css-formatter. Input: JS text ≤10MB. Returns minified or beautified JS or syntax error. 100% client-side.