Encode a component with reserved characters
Input
hello world&x=1Example output
hello%20world%26x%3D1Percent-encode text for safe use in URIs or decode percent-escapes back to text, entirely in your browser. Encoding builds on component encoding with optional strict reserved-mark handling and form-style space handling.
| Accepted input | URL or text for encoding; percent-encoded text for decoding |
|---|---|
| Encoding modes | Encode or decode with Strict RFC 3986 marks (encode only) and Spaces-as-plus handling for form-style query strings |
| Max input size | 5 MB |
| Execution deadline | 2 s |
| Processing location | Browser-only: pasted input is not uploaded or visited |
Input
hello world&x=1Example output
hello%20world%26x%3D1Encoding treats the whole input as a single component, so separators such as ://, ?, and & are escaped too. Encode only the value part when you need the address structure to survive.
Truncated or invalid percent sequences such as a trailing % are rejected with an invalid-input error instead of producing partial output.
Lone surrogate characters cannot be encoded and are rejected with an invalid-input error.
Strict RFC 3986 changes encoding only; it has no effect on decoding, which always resolves percent-escapes the same way.
Empty or whitespace-only input is rejected with an invalid-input error.
URL Parser & Inspector
Decompose, inspect, and analyze URLs into protocol, host, port, path segments, query parameters, and hash fragments.
Query String Parser & Builder
Parse URL query strings into formatted JSON objects, or serialize structured JSON objects back into configurable query strings.
Base64 Encoder / Decoder
Encode UTF-8 text to standard or URL-safe Base64 and decode Base64 back to text.
cURL Command Converter
Convert curl commands into executable code for JavaScript (fetch), Python (requests), Node.js (axios), Go, and PHP.
Use the defaults for standard component encoding. Enable Strict RFC 3986 when the receiver requires the reserved marks !, ', (, ), and * escaped; enable Spaces-as-plus only for form-style query strings.
Only with Spaces-as-plus enabled: encoding writes '+' for spaces and decoding reads '+' as a space, matching form-style space handling only; other form-encoding rules are not implemented. Otherwise spaces encode as '%20' and a literal '+' decodes to '+'.
Decoding fails on malformed percent sequences such as a trailing '%' or non-hexadecimal digits. Fix or re-encode the value so every '%' is followed by two hexadecimal digits.
Strict mode additionally encodes !, ', (, ), and *, which the standard component encoder leaves unescaped. Use it where a specification requires strict RFC 3986 encoding, such as API signature base strings. Decoding is unaffected by this toggle.
Only if you intend to nest it inside another URL. Encoding a full URL escapes its ://, ?, and & separators, so encode just the component or value and leave the address structure intact.
No. The tool only transforms the text you paste inside a Web Worker; it never requests or opens the address.