Free Online URL Encoder and Decoder

Encode a URL Online

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

No upload Encode or decode Value or full URL Free
0
Bytes uploaded
3986
The RFC standard
0
Files stored
$0
Free, always
Why encode a URL

Three Reasons to Encode a URL

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.

Put a Value in a URL Safely

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 value that will not break the link.

Read an Encoded Link

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.

The real text behind the codes.

Use the Right Mode

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.

The correct rule for the case.
How it works

Encode a URL in Three Steps

1

Paste the Text

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.

TEXT ENCODE mode
2

Choose Encode or Decode

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.

a%20b
3

Copy the Result

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.

Encode or decode Copy the result
Right mode Value or full URL
One or a batch Download or ZIP
Need it faster?

Encode Many Values at Once

A value or a link encodes in one step on this page. For a whole column of values in a file, or encoding built into a request, a short script with the platform function encodes the lot straight from disk in one pass.

Get Desktop Version Free trial · Windows 7 to 11
What the free tool does

What the URL Encoder Does

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.

Encode and Decode Both Ways

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.

Value or Whole URL

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.

UTF-8 and Emoji

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.

Space as %20 or Plus

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.

Reference

What Converts Cleanly and What to Watch

URL encoding swaps unsafe characters for percent codes. These points decide how the result reads.

The caseResultWhat happens and why
Value modeencode allEncodes every reserved character, for a single query value or path segment.
Full URL modekeep structureLeaves the slashes, question mark and ampersands that a URL is built from.
Decodeback to textTurns a percent-encoded string back into the original characters.
Unreservednever encodedLetters, 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-8per byteA non-ASCII character becomes one percent code for each of its bytes.
Hex caseuppercaseThe two hex digits are written uppercase, the preferred and safest form.
Double-encodingavoid itEncoding an already-encoded string turns each percent sign into %25.
Where it runson the deviceThe 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.

Honest comparison

On This Page vs in Code

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.

Why no upload

The Text Never Leaves the Device

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.

1. Open the browser tools at the Network tab
2. Clear the log and let it record
3. Encode some text with the panel above
→ Nothing uploads. The text was encoded on the page itself.
0
Bytes uploaded
0
Files stored
0
Accounts required
0
Watermarks added
Alternatives

Other Ways to Encode a URL

Each of these encodes a URL. They vary in reach, in effort and in where the text goes.

encodeURIComponent in Code

encodeURIComponent encodes a value in JavaScript.
It fits straight into the code building the URL.
Picking encodeURI by mistake leaves the ampersand unencoded.

Python urllib

quote and quote_plus encode in Python, one for %20 and one for a plus.
They suit a script or a backend.
Choosing the wrong one gets the space form wrong.

The Browser Bar

The address bar encodes a pasted URL on its own.
It shows the encoded form when a link is copied.
It displays a decoded form that may not copy back cleanly.

A Spreadsheet

An ENCODEURL function encodes a cell across a column.
It suits a batch already in a sheet.
It offers one mode, with no decode and no full URL choice.

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.

Before converting

Three Things to Know Before Converting

A little context avoids a broken link.

Value or Whole URL

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.

Do Not Double-Encode

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.

Know the Space Form

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 desktop edition

When Encoding Happens on Every Request

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.

On this pagea quick check
In codeevery request in one pass
On Every Request

The platform function encodes a value each time a URL is built in code, so a dynamic parameter is always safe.

Whole Columns

A script encodes a full column of values from a file in one pass, every value made URL-safe together.

Right by Default

A well-chosen function encodes correctly every time, so the value and full URL rules are applied without a manual step.

Common questions

URL Encoding Questions

It turns text into percent-encoding that is safe inside a URL, and decodes a percent-encoded string back to the original text, in the browser. Encoding offers a value mode and a full URL mode, and each direction copies with one click.
No. The encoding and decoding run in the browser using its own URI functions, so the text never leaves the device. This matters, since a URL being handled can hold an access token, an OAuth parameter or a signed redirect.
It is the way a URL carries a character that is unsafe or has a special meaning, by replacing it with a percent sign and the two hex digits of its byte value. A space becomes the code for byte twenty, and an ampersand becomes its own code.
The value mode encodes every reserved character, which is right for a single query value or a path segment. The full URL mode leaves the slashes, question mark and ampersands that give a URL its structure, which is right for a whole address.
Use the value mode for anything going inside a URL as data, such as a search term or a redirect target. Use the full URL mode for a complete address. Encoding a value with the full URL mode is the classic bug, since it leaves an ampersand raw.
Because an ampersand separates query parameters, so an unencoded one in a value looks like the start of a new parameter. Encoding the value first turns the ampersand into its percent code, so it is read as part of the value rather than a break.
A path uses the percent code for a space, which is the correct form under the standard. A plus means a space only in a form-encoded query string, the kind an HTML form sends. Match the form to what the destination expects to read.
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 intact.
It is encoding text that is already encoded, which turns every percent sign into its own code and garbles the result. Encode once where the value enters the URL and decode once to read it, and never run either step twice.
Either decodes the same, but uppercase is the preferred form under the standard. Some strict parsers accept only uppercase. This tool writes the two hex digits in uppercase, so the output is safe against the fussier readers.
Unreserved characters, the letters, the digits and the marks dash, underscore, dot and tilde, are safe anywhere and never encoded. Reserved characters have a structural job in a URL, and they are encoded when they are carried as data rather than structure.
A decode fails when the input is not valid percent-encoding. The usual cause is an orphan percent sign with no two hex digits after it, or a broken byte sequence. Fixing the stray percent sign or the truncated code usually lets it decode.
Yes. The value mode matches encodeURIComponent and the full URL mode matches encodeURI, with decodeURIComponent and decodeURI on the decode side, the same functions a browser and Node ship. So a value encoded here is identical to one encoded in JavaScript, and other languages follow the same standard.
Yes. Paste the full percent-encoded URL and decode it to read the real address and its parameters. Decoding is the same whichever mode encoded it, since a percent code means the same character no matter how it was produced.
Yes. The tool runs in a mobile browser as well as on a desktop, so text is encoded or decoded on a phone without an app. The text is processed on the device and nothing is sent to a server.
The page is cheap to host, and since the work happens on the device nothing is received or kept here. The wider suite of tools is what supports the site. There is no cap, no watermark and no sign-up.

OnlinePCApps Developer Group

Written and reviewed by Nils Berg, who has worked on web protocols and developer tools here since 2013

Last reviewed August 2026
13
Years on dev tools
0
Strings uploaded
3986
The RFC standard
0
Watermarks

Almost every URL encoding bug comes down to one choice, which is whether a piece of text is a value going into a URL or the URL itself. A value has to escape the reserved characters, above all the ampersand. Otherwise it looks like the start of a new query parameter and breaks the link. A whole URL must keep those same characters, or its structure falls apart. That is the split between the value mode and the full URL mode here, and matching it to the job fixes most trouble before it starts. Two smaller points are worth holding on to. A space is the percent code in a path but a plus in a form-encoded query, so the space form has to match the destination. Encoding something that is already encoded double-escapes every percent sign and garbles it. A non-ASCII character rides through as its UTF-8 bytes, one code each. Since a URL can carry a token or a signed redirect, the whole thing runs in the browser and sends nothing to a server.

Standards followed

Percent-Encoding · RFC 3986 encodeURIComponent · Value encodeURI · Full URL UTF-8 · Per Byte
Built on the same shared design system as every OnlinePCApps tool. onlinepcapps.com

Encode a URL Online for Free

Free and online, with no sign-up and no upload. Encode or decode a URL in the browser, all on the device.

Encode a URL Free, no account Try Desktop Edition For requests and scripting
Encode a URL