The free online URL encoder turns text into percent-encoding that is safe in a URL and decodes it back, with the right mode for a value or a whole address. Because it runs in the browser, the text is never uploaded.
Developer tools by OnlinePCApps since 2013
A space, an ampersand or an accent in a URL breaks it or points it somewhere wrong. The free online URL encoder turns those into safe percent codes and reads them back again.
A search term, a name or a redirect target dropped straight into a query string can hold characters that break the URL. Encoding the value first turns each one into a safe percent code, so the link works as meant.
A URL copied from a log or a redirect is often a wall of percent codes that mean nothing at a glance. Decoding it turns those codes back into the real characters, so the actual address or parameter is plain to read.
Encoding a whole URL and encoding one value inside it call for different rules, and mixing them up is the classic bug. The tool offers both, so a value keeps its ampersand encoded while a full address keeps its structure intact.
Paste the text to make URL-safe, or a percent-encoded string to read back, into the panel above. A search term, a full link, a redirect target or a query value all work as input.
Pick encode or decode, and for encoding choose the mode, a single value or a whole URL. The value mode encodes reserved characters such as the ampersand, while the full URL mode keeps the structure intact.
Copy the encoded or decoded string to the clipboard, ready to drop into a link, a request or a config. The input stays untouched, so the same text can be encoded or decoded again at any time.
To encode a URL is to swap unsafe characters for percent codes, and to decode is to read them back. The tool does both on the device.
Text is turned into percent-encoding for a URL, and a percent-encoded string is turned back into the original text. The same tool runs the change in either direction, so a value is made safe or an encoded link is made readable.
The value mode encodes every reserved character, the right choice for a single query value or a path segment. The full URL mode leaves the slashes, the question mark and the ampersands that give a URL its structure in place.
A non-ASCII character is first turned into its UTF-8 bytes, and each byte becomes a percent code. An accented letter takes two codes and an emoji takes four, so any language or symbol survives a round trip through a URL.
A space encodes as the percent code that a path expects, and there is the plus form that a form-encoded query string uses instead. Knowing which one a destination wants avoids a value that reads with a stray plus or space.
To encode a URL, to make a value URL-safe and to decode a percent-encoded string all name the same tool. A search for URL encoder or URL decoder reaches this page, and the input is left as it is.
URL encoding swaps unsafe characters for percent codes. These points decide how the result reads.
| The case | Result | What happens and why |
|---|---|---|
| Value mode | encode all | Encodes every reserved character, for a single query value or path segment. |
| Full URL mode | keep structure | Leaves the slashes, question mark and ampersands that a URL is built from. |
| Decode | back to text | Turns a percent-encoded string back into the original characters. |
| Unreserved | never encoded | Letters, digits and the marks - _ . and tilde pass through untouched. |
| Space | %20 or + | A path uses the percent form, while a form-encoded query uses a plus. |
| UTF-8 | per byte | A non-ASCII character becomes one percent code for each of its bytes. |
| Hex case | uppercase | The two hex digits are written uppercase, the preferred and safest form. |
| Double-encoding | avoid it | Encoding an already-encoded string turns each percent sign into %25. |
| Where it runs | on the device | The encoding runs in the browser, so nothing is uploaded. |
How URL Encoding Works
A URL is built from a small, safe set of characters, so anything outside that set has to be escaped to travel in one. URL encoding, or percent-encoding, does this by replacing a character with a percent sign and the two hex digits of its byte value, which is why a space becomes the code for byte twenty. The rules come from RFC 3986, which sorts characters into three groups. The unreserved set, the letters, the digits and a few marks, is safe anywhere and never encoded. The reserved set has a structural job: the slashes, the question mark, the ampersands and the rest. Everything else is escaped when it is carried as data. That split is the heart of the one honest point that trips people up. Encoding a single value, such as a search term going into a query string, has to escape those reserved characters, since an ampersand left raw would look like a parameter break. Encoding a whole URL must leave them alone, or the address falls apart. The value mode and the full URL mode here match those two jobs. A non-ASCII character is handled by its UTF-8 bytes, so an accent takes two codes and an emoji four. Encoding an already-encoded string by mistake is the classic double-encoding bug, where a percent sign itself becomes a code. The references below define the standard.
Both encode a URL. The trade is between a quick manual check and encoding wired into a program.
| Point of comparison | This tool Encoded in the browser On the device | In code In a program |
|---|---|---|
| Where the text goes | Stays in the browser | Runs on the machine |
| Price and caps | Free with no file cap | Free tier often capped |
| Wired into a request | A manual paste here | Part of the program |
| See both modes clearly | Value and full URL side by side | Pick the function by hand |
| A quick one-off check | Open and encode at once | Write and run some code |
Code is the place for encoding that happens on every request inside a program. This page suits a quick check or a one-off value, with the two modes side by side so the right one is easy to pick. It opens with no set-up. Both run the same standard functions locally.
The text is encoded and decoded inside the browser by its own URI functions, so the work is client-side and the text stays on the machine that opened it. Nothing is handed to a server to run the change.
A URL being encoded or decoded can hold an access token, an OAuth parameter or a signed redirect that should stay private. A server-side encoder would receive all of that on the way, needless exposure when the browser can do the same work locally.
Each of these encodes a URL. They vary in reach, in effort and in where the text goes.
Code, a script, the browser bar and a spreadsheet all encode a URL, yet each means the right function or a single mode. This page shows the value and the full URL modes with a decode, kept local with nothing to set up.
A little context avoids a broken link.
Encode a single value with the value mode, which escapes reserved characters such as the ampersand. Encode a whole address with the full URL mode, which keeps the slashes and separators. Mixing these up is the most common URL bug.
Encoding text that is already encoded turns every percent sign into %25, which garbles the result. Encode once at the point the value enters the URL, and decode once to read it, never twice on either side.
A space encodes as the percent code in a path, and as a plus in a form-encoded query string. If a decoded value shows a stray plus or a stray space, the wrong space form was used for the destination.
The browser encodes a value or a link on demand, which suits a quick check. Encoding that runs on every request, or a whole column of values in a file, belongs in code or a script with the platform function, which handles the lot in one pass.
The platform function encodes a value each time a URL is built in code, so a dynamic parameter is always safe.
A script encodes a full column of values from a file in one pass, every value made URL-safe together.
A well-chosen function encodes correctly every time, so the value and full URL rules are applied without a manual step.
Free and online, with no sign-up and no upload. Encode or decode a URL in the browser, all on the device.