How it works
- 01
Paste the text
A whole URL, one parameter value, or a column of values. It stays in this tab.
- 02
Pick the mode
Component for one value, full URL for a whole address, form data for a form post.
- 03
Copy the output
Every character it escaped is listed under the panes, so you can check the ones you meant.
Component, full URL or form data
The three modes differ in what they leave alone. Component mode escapes everything that is not unreserved, separators included, and that is right when the text goes inside one parameter or one path piece. Full URL mode keeps the structural characters, so a whole address survives instead of collapsing into one long string. Form data mode follows the older form-post rule, where a space is written as a plus.
The wrong mode breaks a link in one of two ways. A whole URL run through component mode comes out unusable. A parameter value run through full URL mode keeps its ampersand, and the server reads that as the start of the next parameter.
- Standard
- RFC 3986. In component mode only A-Z a-z 0-9 - _ . ~ stay as they are.
- Non-ASCII
- Turned into UTF-8 bytes first, so é becomes %C3%A9.
- Spaces
- %20 in every mode but form data, where a plus is normal.
- Case
- RFC 3986 prefers capital hex digits. Both forms decode alike.
Text outside ASCII
Characters outside ASCII become UTF-8 bytes first, and then every byte gets its own sequence. One accented letter is two sequences and an emoji is four. That is why encoded text in most languages looks so much longer than the words that went in.
Older systems that assumed Latin-1 read those bytes wrongly. If an endpoint hands back mangled letters, switch the Character encoding here to Latin-1 and see whether the output matches what it sent.