Encoding
URL Encode / Decode
URL Encode / Decode converts plain text into percent-encoded (URL-encoded) format and decodes it back to readable text. Results update as you type — no button press needed.
All processing happens entirely in your browser. Nothing is sent to a server.
Related Tools
Base64 Encode / Decode
Encode text to Base64 and decode it back, with URL-safe Base64, 76-char MIME line wrapping, and real-time results. Runs entirely in your browser.
Image ⇄ Base64 Converter
Convert images to Base64 (data URL) and back, with ready-to-paste CSS, HTML, and Markdown snippets generated automatically. Runs entirely in your browser.
JWT Decoder
Decode a JWT into header, payload, and signature, with iat/exp/nbf shown as readable times and HS256/384/512 verification. Runs entirely in your browser.
Hash Generator
Generate MD5, SHA-1, SHA-256, and SHA-512 hashes from text or files, with HMAC and expected-digest comparison. Runs entirely in your browser.
About URL Encode / Decode
URL Encode / Decode converts plain text into percent-encoded (URL-encoded) format and decodes it back to readable text. Results update as you type — no button press needed.
URL encoding replaces characters that are not safe in URLs — such as spaces, non-ASCII letters, and special symbols — with a % sign followed by two hex digits (e.g., a space becomes %20, and the Japanese character "あ" becomes %E3%81%82). Browsers and HTTP clients do this automatically, but knowing how to do it manually is essential for API development and debugging.
Two encoding scopes are available. Query parameter encodes nearly all special characters, including URL delimiters like :, /, ?, and #. Use this for values you embed in a query string or anywhere inside a URL. Full URL preserves URL structural delimiters and only encodes characters that are unsafe anywhere in a URI, such as non-ASCII characters. Use this when you want to encode an already-formed URL without breaking its structure.
The optional Encode spaces as "+" toggle replaces spaces with + instead of %20, matching the application/x-www-form-urlencoded format used by HTML form submissions.
All processing happens entirely in your browser. Nothing is sent to a server.
How to use
- Select "Text → URL" to encode or "URL → Text" to decode using the mode toggle at the top.
- Choose an encoding scope: "Query parameter" for individual values, or "Full URL" for a complete URL. When in doubt, use Query parameter.
- Type or paste your text (or URL-encoded string) into the input field. The result updates instantly.
- Enable "Encode spaces as +" if you need application/x-www-form-urlencoded format.
- Click the "Copy" button in the output area to copy the result to your clipboard.
Use cases
- Encoding Japanese or special characters in API query parameters to verify the correct percent-encoded output.
- Decoding URL-encoded strings from browser address bars, HTTP logs, or API responses to read the original content.
- Checking the encoding and decoding of HTML form POST data (application/x-www-form-urlencoded).
- Verifying that OAuth redirect_uri or signature base strings are encoded according to spec.
- Quickly decoding URL-encoded parameters from external services to inspect their contents.
Notes
- "Query parameter" mode is equivalent to encodeURIComponent. It encodes URL delimiters (: / ? # @) as well. Use it for individual parameter values or any string you embed inside a URL.
- "Full URL" mode is equivalent to encodeURI. It preserves URL structural characters and only encodes characters that are unsafe anywhere in a URI. Use it when you need to encode a complete URL without breaking its structure.
- When "Encode spaces as +" is enabled, spaces are encoded as + (encoding) or decoded as + → %20 → space (decoding), matching the application/x-www-form-urlencoded format.
- If the input contains a malformed %xx sequence — such as a lone % or a non-hex character after % — an error message is shown. Double-check the source string.
- Non-ASCII characters, including Japanese and emoji, are fully supported. They are encoded as their UTF-8 byte sequence in percent-encoded form.