URL Encoder & Decoder
Encode plain text into URL-encoded format (%20 percent-encoding) or decode URL strings safely for web API development and URL testing.
Step-by-Step Instructions
Enter URL or Query String
Paste complete URLs, URI parameters, or special character text into the input field.
Select Encode or Decode Mode
Choose URL Encode to convert unsafe characters to percent-encoding, or URL Decode to restore plaintext.
Choose Encoding Standard
Select standard `encodeURIComponent` (encodes all special characters) or `encodeURI` (preserves protocol/path delimiters).
Copy Encoded String
Copy the sanitized URL-safe string ready for API requests and query parameters.
Key Features & Capabilities
- RFC 3986 percent-encoding and decoding engine with complete UTF-8 multi-byte character support
- `encodeURIComponent` vs `encodeURI` vs `escape` JavaScript function standard modes
- Form URL-encoded (`application/x-www-form-urlencoded`) space encoding options (`%20` vs `+`)
- Query string key-value pair parser breaking URL parameters into an interactive table
Frequently Asked Questions
What is URL Percent-Encoding (URL Encoding)?
URL encoding converts reserved, unprintable, or non-ASCII characters into percent-encoded format (`%XX`), where `XX` is the two-digit hexadecimal ASCII/UTF-8 byte value. For example: a space becomes `%20`, an ampersand (`&`) becomes `%26`, and an equals sign (`=`) becomes `%3D`, ensuring URIs remain valid across all HTTP network proxies.
What is the difference between encodeURI() and encodeURIComponent()?
`encodeURI()` is designed to encode a full URL while preserving reserved protocol and routing delimiters (`:`, `/`, `?`, `#`, `&`, `=`). `encodeURIComponent()` is designed to encode a *single parameter or query string value*, encoding reserved characters (e.g., converting `?` to `%3F` and `&` to `%26`) so they are not misinterpreted as URL query delimiters.
When should spaces be encoded as '%20' versus '+'?
In standard URI path and query strings (RFC 3986), spaces must be percent-encoded as **`%20`**. In HTML form submissions using `application/x-www-form-urlencoded` MIME type (e.g., query strings in traditional form GET/POST requests), spaces are encoded as **`+`**.
Why do non-ASCII characters generate multiple percent-encoded bytes?
Under UTF-8 encoding rules, non-ASCII characters (such as accented characters, Cyrillic, or emojis) require 2, 3, or 4 bytes of data. Each individual byte is percent-encoded separately: for example, the euro symbol `€` (3 bytes in UTF-8: `0xE2 0x82 0xAC`) becomes `%E2%82%AC`.
Related Utilities
Discover complementary online tools in the same workflow.
JSON Formatter & Validator
Format, beautify, minify, validate, and view JSON data online with instant syntax highlighting and error detection.
Base64 Encoder & Decoder
Encode text or binary data into Base64 format or decode Base64 back into raw string format.
CSV to JSON Converter
Easily convert CSV data to clean JSON format. Turn tabular spreadsheets into structured JSON.
YAML to JSON Converter
Convert YAML configuration files into structured JSON for APIs and modern web tooling.
JWT Parser & Token Debugger
Decode JWT tokens to view header, payload claims, and expiration status without sending secrets anywhere.
Hash Generator (SHA-256, SHA-512, MD5)
Generate cryptographically secure SHA-256, SHA-512, SHA-384, and SHA-1 hashes for any text.