URL Encoder & Decoder Online — Free URL Encode & Parse Tool

URL Encoder/Decoder

Encode, decode, and parse URLs and query strings instantly.

Free online URL encoder, decoder, and query string parser. Quickly encode text and special characters for URI query parameters with encodeURIComponent or format entire URLs with encodeURI. Decode percent-encoded (%XX) strings, URL parameters, and application/x-www-form-urlencoded payloads back to clean UTF-8 text and Unicode emojis. Deconstruct and parse any full URL into protocol, host, port, path, query parameters, and hash fragments with instant key-value table inspection. Build URL query strings from key-value pairs, detect double-encoding errors, and enforce strict RFC 3986 encoding (encoding reserved characters like !'()* for AWS Signature V4). Runs 100% client-side in your browser with zero server transmission for maximum privacy.

Keywords: url encoder, url decoder, url encode online, url decode online, percent encoding, encodeURIComponent, encodeURI, url parser, query string parser, query string builder, url encode decode, url encoding, url decoding, encode url online, decode url online, uri encoder, url escape, url unescape, percent decode, rfc 3986, url encode special characters, url safe encoder, url decoder utf8, url decode space plus, decode url percent, aws signature v4 url encode

Tags: url, encode, decode, percent-encoding, query-string, uri, parse, rfc3986

Browse all 21 Web Code tools →

URL Encoder/Decoder is also known as: URL Encoder, URL Decoder Online, Percent Encoding Tool, URL Parser Online, URI Component Encoder, Query String Parser, Query String Builder, URL Percent Decoder, RFC 3986 URL Encoder, Form URL Encoded Converter.

How to URL Encoder/Decoder Online

  1. Paste or type any text, query parameter string, or complete URL into the input editor panel.

  2. Select your desired operation: "Encode" (encodeURIComponent for query values), "Decode" (decode percent-encoding), "Encode URI" (encodeURI for full addresses), "Decode URI", "Parse URL" (extract structured components), "Parse Query" (tabular key-value view), or "Build Query" (construct parameters from lines).

  3. Configure space formatting preferences: choose standard RFC 3986 %20 (recommended for APIs and path segments) or + (form-urlencoded standard for HTML forms and URLSearchParams).

  4. Enable "RFC 3986 Strict" mode if creating cryptographic signatures (such as AWS Signature V4 or OAuth 1.0a) to percent-encode sub-delimiters !, ', (, ), and *.

  5. Click the action button or press ⌘↵ (Ctrl+Enter on Windows/Linux) to run the transformation instantly with real-time character statistics.

  6. When "Parse URL" or "Parse Query" is selected, inspect the structured decomposition breakdown including protocol, host, port, path, query parameters table, and hash fragment.

  7. Review real-time double-encoding warnings if your input contains patterns like %25XX to avoid corrupted web requests.

  8. Copy the converted output to your clipboard with ⌘⇧C, download as a text file, or generate a shareable URL for team collaboration.

URL Encoder/Decoder Features

  • RFC 3986 Component Encoding (encodeURIComponent): Safely escapes reserved characters, punctuation, and delimiters within individual query parameter values.

  • Standard Full URL Encoding (encodeURI): Encodes spaces and non-ASCII characters while preserving valid URL structure delimiters (:, /, ?, #, &, =).

  • RFC 3986 Strict Percent-Encoding: Enforces strict canonical encoding for AWS Signature Version 4, OAuth, and cloud API authorization by encoding !, ', (, ), and *.

  • Bi-Directional Percent-Decoding: Restores percent-encoded (%XX) sequences and UTF-8 octets into human-readable text and emojis with automatic error reporting.

  • Smart Space Handling (%20 vs +): Seamlessly switch between RFC 3986 %20 hex notation and W3C application/x-www-form-urlencoded plus sign notation.

  • Comprehensive URL Deconstructor & Parser: Splits full web addresses into protocol, username, password, hostname, port, pathname, search query, and anchor hash.

  • Interactive Query String Table: Parses query strings into an editable, sortable key-value table supporting multi-value keys and special character values.

  • Query String Builder: Generates properly formatted, valid query strings from newline-delimited key=value definitions.

  • Double-Encoding Detection & Heuristics: Automatically identifies re-encoded sequences (such as %2520) to prevent broken routes and HTTP 400 Bad Request errors.

  • Full Unicode & Emoji UTF-8 Multi-Byte Support: Encodes and decodes multi-byte UTF-8 sequences (CJK, Cyrillic, Arabic, mathematical symbols, and emoji surrogate pairs).

  • 100% Client-Side In-Browser Execution: All transformations execute entirely within your browser memory using native Web APIs without sending data to any external server.

  • Developer Keyboard Shortcuts: Boost productivity with ⌘↵ (Run), ⌘⇧E (Force Encode), ⌘⇧D (Force Decode), ⌘⇧P (Force Parse URL), ⌘⇧K (Clear), and ⌘⇧C (Copy).

  • Headless API Support: Programmatically encode, decode, and parse URLs via HTTP POST /api/tools/url-encode with JSON payload schemas.

Supported Formats & Dialects

The URL Encoder/Decoder supports 6 syntax formats and dialects for accurate parsing and processing.

RFC 3986 Component Encoding (encodeURIComponent)
Encodes all characters except unreserved characters (A–Z, a–z, 0–9, -, _, ., ~) and unescaped punctuation (!, ', (, ), *). Essential for isolating query parameter keys and values so delimiters like & and = are not interpreted structurally.
Standard Full URI Encoding (encodeURI)
Formats complete web URLs by percent-encoding spaces and international characters while preserving structural protocol, path, and query delimiters (:, /, ?, #, &, =, @, +, $, ,).
RFC 3986 Strict Percent-Encoding (AWS SigV4 & OAuth)
Strictest encoding dialect that percent-encodes every character outside [A-Za-z0-9-_.~], including !, ', (, ), and *. Mandatory for AWS Signature Version 4 canonical request hashing and OAuth 1.0 signature baselines.
application/x-www-form-urlencoded (HTML Form Data)
W3C standard encoding used by HTML forms and URLSearchParams where spaces are serialized as plus signs (+) rather than %20, and alphanumeric characters plus *, -, ., _ remain unencoded.
URL Query String Parser & Deconstructor
Splits raw query strings (?k1=v1&k2=v2) into structured key-value arrays, properly decoding multi-value parameters, nested bracket keys, and percent-encoded values.
Multi-Byte UTF-8 & Emoji Percent-Encoding
Translates non-ASCII Unicode characters into their constituent 1 to 4 UTF-8 byte octets, each converted into an individual %XX hexadecimal escape sequence (e.g., 🚀 -> %F0%9F%9A%80).
All Guides
All Standards

Pre-built Automation Pipelines

Chain URL Encoder/Decoder with other utilities in a multi-step visual workflow.

beginner
encoding

URL Encode/Decode

Encode or decode URL parameters safely.

Flow:
InputURL Encoder/DecoderOutput
3 nodes
intermediate
security

URL Decode → JWT Inspect

Safely decode URL-encoded JWT tokens for inspection.

Flow:
InputURL Encoder/DecoderJWT DecoderOutput
4 nodes

Frequently Asked Questions

What is the difference between encodeURI and encodeURIComponent in JavaScript?
encodeURI is designed to encode a full Uniform Resource Identifier (URI) while preserving structural punctuation characters that have reserved syntactic meaning in URLs (such as :, /, ?, #, &, and =). In contrast, encodeURIComponent is designed to encode an individual query parameter key or value; it percent-encodes structural delimiters so that literal characters (like & or = inside a search query) are not mistaken for query string delimiters. As a best practice, use encodeURI on complete URLs and encodeURIComponent on individual parameter strings.
Why are spaces encoded as both %20 and + in web URLs?
Both representations are valid depending on the context and specification. %20 is the strict standard defined by RFC 3986 for all URI components (including path segments, query strings, and fragments). The plus sign (+) originates from the W3C HTML specification for application/x-www-form-urlencoded form data, which is standard for HTTP GET and POST form submissions and JavaScript URLSearchParams. However, in path segments (such as /files/my+doc.pdf), + represents a literal plus character, whereas /files/my%20doc.pdf represents a space.
What causes double encoding (%2520) and how do you detect and fix it?
Double encoding happens when an already percent-encoded string is passed into an encoder function a second time. The encoder encounters the percent sign (%) from sequences like %20 and re-encodes it as %25, producing %2520. This corrupts query parameter values and frequently leads to HTTP 400 Bad Request or HTTP 404 Not Found routing errors. To fix double encoding, decode the string twice or use this tool's automated detection to identify %25 patterns and restore the original text.
What is RFC 3986 strict encoding and why does AWS Signature V4 require it?
JavaScript's native encodeURIComponent follows older ECMAScript standards that leave exclamation marks (!), single quotes ('), parentheses (()), and asterisks (*) unencoded. However, modern canonical request specifications like AWS Signature Version 4 (SigV4) and OAuth 1.0 require strict RFC 3986 adherence where every character outside the unreserved set (A–Z, a–z, 0–9, -, _, ., ~) must be percent-encoded. This tool's "RFC 3986 Strict" mode ensures exact compliance with AWS and cloud authorization hashing rules.
How does JavaScript handle multi-byte UTF-8 Unicode characters and emojis in URLs?
Modern URL encoding converts non-ASCII characters and emojis into their corresponding UTF-8 byte sequences (1 to 4 bytes per character) and encodes each byte as %XX. For example, the rocket emoji (🚀) consists of four UTF-8 bytes (0xF0 0x9F 0x9A 0x80), which encodes to %F0%9F%9A%80. JavaScript strings use UTF-16 surrogate pairs for characters outside the Basic Multilingual Plane; encodeURIComponent processes valid surrogate pairs seamlessly but will throw a URIError: URI malformed if a string contains lone or mismatched surrogate code units.
How are nested objects and arrays serialized in URL query strings?
Because RFC 3986 does not specify a single standard for nested data structures, backend frameworks use different conventions: PHP and Ruby on Rails use bracket notation (filter[]=1&filter[]=2 or user[name]=John), Django and FastAPI use repeated keys (filter=1&filter=2), and OpenAPI/REST APIs often use comma-separated values (filter=1,2). When constructing query strings, ensure your serialization format matches the query parser library (such as qs or URLSearchParams) expected by your target API server.
What are reserved vs unreserved characters according to RFC 3986?
RFC 3986 divides URI characters into unreserved characters (A–Z, a–z, 0–9, hyphen -, underscore _, period ., and tilde ~) which must never be percent-encoded, and reserved characters which have special syntactic significance. Reserved characters include general delimiters (:, /, ?, #, [, ], @) and sub-delimiters (!, $, &, ', (, ), *, +, ,, ;, =). When reserved characters are used as literal data rather than structural delimiters, they must be percent-encoded.
Does URL encoding protect against Cross-Site Scripting (XSS) or SQL Injection?
No. URL encoding is purely a transport-layer serialization format to ensure characters pass safely through HTTP URI parsers without corrupting URL structure. Once the web server or application framework decodes the percent-encoded parameter back into a raw string, malicious payloads (such as <script> or SQL fragments) can still execute if not properly sanitized, parameterized in SQL queries, or escaped with HTML entities before rendering.
How does client-side URL encoding protect sensitive API tokens and parameters?
When using this tool, all encoding, decoding, parsing, and query string manipulation runs 100% locally in your web browser using native JavaScript and Web APIs. No input text, URLs, API keys, bearer tokens, or query strings are sent across the network or logged to any remote server, ensuring complete data privacy for proprietary API endpoints and credentials.
What is the difference between URL percent-encoding and Base64 encoding?
URL percent-encoding is character-based escaping that replaces specific reserved or non-ASCII characters with %XX byte representations while leaving readable ASCII alphanumeric text intact. Base64 is a binary-to-text encoding scheme that converts arbitrary 8-bit binary data into a 64-character ASCII alphabet (A–Z, a–z, 0–9, +, /), making the original text unreadable without decoding and increasing data size by ~33%. Base64 is used for binary file transmission and JWT tokens, whereas URL encoding is used for HTTP addresses and query strings.

Developer Reference & Learning Hubs