---
title: "URL Encoding Tutorial & Fixer: Decode %20 Errors (2026) | ShoutingNow"
description: "Learn URL encoding (percent-encoding): what %20 means, how to encode and decode query strings, character sets, RFC 3986 rules, use cases, formulas, FAQs."
url: "https://shoutingnow.com/blog/url-encoding-tutorial-and-fixer/"
image: "https://shoutingnow.com/wp-content/uploads/2026/07/URL-encoding-tutorial-and-fixer-tool-1024x683.webp"
---

# URL Encoding Tutorial &#038; Fixer: Decode %20 Errors (2026)

**URL encoding**, also called *percent-encoding*, is how browsers and APIs represent spaces, symbols, and non-ASCII text inside web addresses and form payloads. If you have ever seen %20 where you expected a space, or a broken link after copying from a document, you have met encoding in the wild. This guide explains *what* URL encoding is, *how* to encode and decode correctly, and *when* to use each option. When you are ready, open our [free URL Encode & Decode tool](https://shoutingnow.com/tools/url-encode-decode/) to fix strings instantly in your browser.

		On this page
		18

			1. 1
																Overview
2. 2
																		What is URL encoding?

											Reserved characters (RFC 3986 §2.2)
3. Unreserved characters (RFC 3986 §2.3)

													[
																	3
																How to encode and decode URLs (step by step)
							](#how-to-encode-and-decode-urls-step-by-step)

													[
																	4
																Advanced options
							](#advanced-options)

													[
																	5
																Formulas and encoding rules
							](#formulas-and-encoding-rules)

													[
																	6
																Common characters after percent-encoding
							](#common-characters-after-percent-encoding)

													[
																	7
																Use cases
							](#use-cases)

													[
																	8
																Common mistakes and solutions
							](#common-mistakes-and-solutions)

													[
																	9
																Safe and secure
							](#safe-and-secure)

													[
																	10
																Completely free
							](#completely-free)

								[
																			11
																		Details of URL encoding
								](#details-of-url-encoding)

							1. Percent-encoding reserved characters
2. Percent-encoding the percent character
3. Binary and character data

													[
																	12
																Fix your URLs now
							](#fix-your-urls-now)

													[
																	13
																Frequently asked questions
							](#sn-section-faqs)

				Show 8 more sections

**Fix %20 errors now:** [Open the URL Encode & Decode tool](https://shoutingnow.com/tools/url-encode-decode/), live UTF-8 mode, 50+ character sets, recursive decode, file upload, and copy-ready results. No signup.

## Overview

Meet URL Decode and Encode, a simple online tool that does exactly what it says: decodes from URL encoding as well as encodes into it quickly and easily. URL encode your data without hassles or decode it into a human-readable format.

URL encoding, also known as “percent-encoding”, is a mechanism for encoding information in a Uniform Resource Identifier (URI). Although it is known as URL encoding it is, in fact, used more generally within the main Uniform Resource Identifier (URI) set, which includes both Uniform Resource Locator (URL) and Uniform Resource Name (URN). As such it is also used in the preparation of data of the application/x-www-form-urlencoded media type, as is often employed in the submission of HTML form data in HTTP requests.

## What is URL encoding?

URIs may only contain a limited set of characters. Everything else must be converted to bytes and written as %XX where XX is hexadecimal. For UTF-8 text, each byte of the character's encoding is percent-encoded separately, so a space (byte 20) becomes %20, and an emoji may become several % sequences.

### Reserved characters (RFC 3986 §2.2)

These characters have special meaning in some URI components: ! * ' ( ) ; : @ & = + $ , / ? # [ ]

### Unreserved characters (RFC 3986 §2.3)

Letters A-Z a-z, digits 0-9, and - _ . ~ never need encoding. Producers should not encode unreserved characters for maximum interoperability.

## How to encode and decode URLs (step by step)

1. Paste your text or URL into the encode or decode panel on the URL Encode & Decode tool.
2. Choose options, character set, newline separator, line-by-line mode, MIME chunks, or live UTF-8 mode.
3. Click ENCODE or DECODE (or turn on live mode for instant UTF-8 results).
4. Copy or download the output and paste into your app, CMS, or API client.

## Advanced options

**Character set:** Our website uses the UTF-8 character set, so your input data is transmitted in that format. Change this option if you want to convert the data to another character set before encoding. Note that in case of text data, the encoding scheme does not contain the character set, so you may have to specify the appropriate set during the decoding process. As for files, the binary option is the default, which will omit any conversion; this option is required for everything except plain text documents.

**Newline separator:** Unix and Windows systems use different line break characters, so prior to encoding either variant will be replaced within your data by the selected option. For the files section, this is partially irrelevant since files already contain the corresponding separators, but you can define which one to use for the “encode each line separately” and “split lines into chunks” functions.

**Encode each line separately:** Even newline characters are converted to their percent-encoded forms. Use this option if you want to encode multiple independent data entries separated with line breaks. (*)

**Split lines into chunks:** The encoded data will become a continuous text without any whitespaces, so check this option if you want to break it up into multiple lines. The applied character limit is defined in the MIME (RFC 2045) specification, which states that the encoded lines must be no more than 76 characters long. (*)

**Live mode:** When you turn on this option the entered data is encoded immediately with your browser's built-in JavaScript functions, without sending any information to our servers. Currently this mode supports only the UTF-8 character set.

*(*) These options cannot be enabled simultaneously since the resulting output would not be valid for the majority of applications.*

## Formulas and encoding rules

For a byte value b that is not unreserved:

encoded = "%" + uppercase_hex(b)     // e.g. space (0x20) → %20
For UTF-8 character C:
  bytes = UTF8(C)
  output = concat( percentEncode(byte) for each byte in bytes )
**Example:** Path segment my page.html → my%20page.html

**Double encoding warning:** Encoding an already-encoded string produces %2520 for a space. Use recursive decode (up to 16 passes) to recover.

## Common characters after percent-encoding

Character
Encoded (UTF-8 / ASCII)

newline
%0A or %0D or %0D%0A

space
%20

"
%22

%
%25

&
%26

+
%2B

/
%2F

?
%3F

#
%23

=
%3D

## Use cases

Scenario
Why encoding matters

Query string parameters
Values with &, =, or spaces break parsing unless encoded.

Redirect URLs in analytics
UTM tags and landing-page URLs must be encoded when nested inside another URL.

HTML form POST bodies
application/x-www-form-urlencoded uses percent-encoding; spaces may appear as +.

API clients & webhooks
JSON string fields copied into URLs need encoding before HTTP requests.

Internationalized paths
Non-ASCII slugs are UTF-8 bytes percent-encoded per RFC 3986.

Debugging broken links
Decode to find double-encoding, wrong charset, or stray + characters.

Email and SMS links
Line wraps and smart punctuation often introduce spaces that require %20.

## Common mistakes and solutions

Mistake
Problem
Solution

Space left unencoded in URL
Browser or server rejects link; SEO tools flag errors
Encode spaces as %20 using the [encoder](https://shoutingnow.com/tools/url-encode-decode/)

Encoding an entire URL including scheme
https:// becomes unusable
Encode only the path or individual query values

Double (or triple) encoding
%2520 instead of %20
Enable recursive decode or fix at source

Wrong character set on decode
Mojibake, garbled accents
Match ISO-8859-1 vs UTF-8 to the producing system

Using + in path segment
Some servers treat + literally, not as space
Use %20 in paths; + is mainly for form bodies

Encoding reserved chars that are delimiters
Breaking query structure
Encode values, not ? & = that separate parameters

Mixing encode-each-line with MIME chunks
Invalid output for most parsers
Enable only one of these options at a time

## Safe and secure

All communications with our servers come through secure SSL encrypted connections (https). When you use live mode or text panels, encoding runs in your browser, pasted content is not sent for processing. Uploaded files are processed locally in JavaScript; ShoutingNow does not retain file contents on servers. Read our privacy policy for full details.

## Completely free

Our tool is free to use. From now on, you don't need to download any software for such simple tasks.

## Details of URL encoding

### Percent-encoding reserved characters

When a reserved character has special meaning in a particular context and must appear as data, it is percent-encoded: the character is converted to its byte value and written as % plus two hex digits. The reserved character / in a path segment, for example, must appear as %2F when it is data rather than a delimiter.

### Percent-encoding the percent character

Because % indicates an encoded octet, a literal percent sign in data must be encoded as %25.

### Binary and character data

Binary data in URIs is divided into 8-bit bytes and percent-encoded. Character data outside ASCII should use a defined charset (UTF-8 on the modern web). Legacy systems that omit charset metadata cause ambiguous URIs, always document or agree on UTF-8 when possible.

## Fix your URLs now

Use the [ShoutingNow URL Encode & Decode tool](https://shoutingnow.com/tools/url-encode-decode/) to encode query values, decode analytics URLs, or process files with BINARY mode. Bookmark this [URL encoding tutorial](https://shoutingnow.com/blog/url-encoding-tutorial-and-fixer/) for RFC tables, formulas, and troubleshooting, then share the tool with your team for unlimited free use.

## Frequently Asked Questions

### What is the difference between URL encoding and Base64?
URL encoding (percent-encoding) represents individual bytes as %XX triplet sequences safe for URIs. Base64 maps binary data to alphanumeric strings for email, JSON, or data URIs. Use URL encoding for addresses and query strings; use Base64 when the transport is not URI-safe.

### Should I encode the entire URL or just the query string?
Encode individual query *values* (and path segments that contain special characters), not the scheme (https://) or structural delimiters (?, &, =) unless they are data.

### Why does JavaScript encodeURIComponent differ from form encoding?
encodeURIComponent encodes more characters (including / and :) than HTML form submission, which often uses application/x-www-form-urlencoded and may convert spaces to +. Pick the rule set your API expects.

### How do I fix double-encoded URLs?
Paste the string into the [decoder](https://shoutingnow.com/tools/url-encode-decode/), enable **Decode recursively**, and run up to 16 passes until %2520 becomes a space. Fix the upstream system so it encodes only once.

### Is URL encoding the same as HTML entity encoding?
No. HTML entities like &amp; are for markup. URL encoding uses percent signs for URI components. Use the correct layer: HTML escape in pages, URL encode in hrefs and APIs.

### Where is the free URL encoder on ShoutingNow?
Open the [URL Encode & Decode tool](https://shoutingnow.com/tools/url-encode-decode/), text and file modes, live UTF-8, character sets, MIME chunks, and copy/download actions run free in your browser.

```json
[{"@context":"https://schema.org","@type":"Organization","name":"ShoutingNow","url":"https://shoutingnow.com/","logo":{"@type":"ImageObject","url":"https://shoutingnow.com/wp-content/themes/shoutingnow-theme/assets/images/logo.png"},"sameAs":["https://x.com/makani20","https://www.linkedin.com/in/makani20/","https://post-see.com"],"contactPoint":{"@type":"ContactPoint","contactType":"customer support","email":"support@shoutingnow.com","url":"https://shoutingnow.com/contact/"},"slogan":"Learn. Build. Grow."},{"@context":"https://schema.org","@type":"WebPage","name":"URL Encoding Tutorial &#038; Fixer: Decode %20 Errors (2026)","description":"Learn URL encoding (percent-encoding): what %20 means, how to encode and decode query strings, character sets, RFC 3986 rules, use cases, formulas, FAQs.","url":"https://shoutingnow.com/blog/url-encoding-tutorial-and-fixer/","inLanguage":"en-US"},{"@context":"https://schema.org","@type":"Article","headline":"URL Encoding Tutorial &#038; Fixer: Decode %20 Errors (2026)","description":"Learn URL encoding (percent-encoding): what %20 means, how to encode and decode query strings, character sets, RFC 3986 rules, use cases, formulas, FAQs.","datePublished":"2026-07-03T06:20:19+00:00","dateModified":"2026-07-27T11:12:17+00:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://shoutingnow.com/blog/url-encoding-tutorial-and-fixer/"},"author":{"@type":"Person","name":"Kishan Makani","url":"https://shoutingnow.com/blog/author/kishan-makani/","description":"Kishan Makani is the founder of Post See and the lead writer at ShoutingNow. Based in Surat, India, he builds AI-powered tools that help creators automate content workflows without sacrificing authenticity.\n\nHe writes hands-on guides and tutorials on WordPress performance, web tools, productivity, and practical AI, always tested in real projects before publication. Every article on ShoutingNow reflects work he has actually done: configuring sites, benchmarking load times, and building the tools featured on this site.\n\nBefore ShoutingNow, Kishan worked across web development, content strategy, and creator tooling. That background shapes how he writes: clear steps, honest trade-offs, and no filler.","jobTitle":"Founder at Post See · AI & Content Automation","image":"https://shoutingnow.com/wp-content/uploads/2026/07/kishan-makani.webp","homeLocation":{"@type":"Place","address":"Surat, India"},"sameAs":["https://post-see.com","https://www.linkedin.com/in/makani20/","https://x.com/makani20"],"knowsAbout":["WordPress development","Web performance","AI content workflows","Creator tools","Technical tutorials"]},"publisher":{"@type":"Organization","name":"ShoutingNow","url":"https://shoutingnow.com/","logo":{"@type":"ImageObject","url":"https://shoutingnow.com/wp-content/themes/shoutingnow-theme/assets/images/logo.png"},"sameAs":["https://x.com/makani20","https://www.linkedin.com/in/makani20/","https://post-see.com"],"contactPoint":{"@type":"ContactPoint","contactType":"customer support","email":"support@shoutingnow.com","url":"https://shoutingnow.com/contact/"}},"image":"https://shoutingnow.com/wp-content/uploads/2026/07/URL-encoding-tutorial-and-fixer-tool-1024x683.webp"},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is the difference between URL encoding and Base64?","acceptedAnswer":{"@type":"Answer","text":"URL encoding (percent-encoding) represents individual bytes as %XX triplet sequences safe for URIs. Base64 maps binary data to alphanumeric strings for email, JSON, or data URIs. Use URL encoding for addresses and query strings; use Base64 when the transport is not URI-safe."}},{"@type":"Question","name":"Should I encode the entire URL or just the query string?","acceptedAnswer":{"@type":"Answer","text":"Encode individual query values (and path segments that contain special characters), not the scheme (https://) or structural delimiters (?, &amp;, =) unless they are data."}},{"@type":"Question","name":"Why does JavaScript encodeURIComponent differ from form encoding?","acceptedAnswer":{"@type":"Answer","text":"encodeURIComponent encodes more characters (including / and :) than HTML form submission, which often uses application/x-www-form-urlencoded and may convert spaces to +. Pick the rule set your API expects."}},{"@type":"Question","name":"How do I fix double-encoded URLs?","acceptedAnswer":{"@type":"Answer","text":"Paste the string into the decoder, enable Decode recursively, and run up to 16 passes until %2520 becomes a space. Fix the upstream system so it encodes only once."}},{"@type":"Question","name":"Is URL encoding the same as HTML entity encoding?","acceptedAnswer":{"@type":"Answer","text":"No. HTML entities like &amp;amp; are for markup. URL encoding uses percent signs for URI components. Use the correct layer: HTML escape in pages, URL encode in hrefs and APIs."}},{"@type":"Question","name":"Where is the free URL encoder on ShoutingNow?","acceptedAnswer":{"@type":"Answer","text":"Open the URL Encode &amp; Decode tool, text and file modes, live UTF-8, character sets, MIME chunks, and copy/download actions run free in your browser."}}]},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"ShoutingNow","item":"https://shoutingnow.com/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://shoutingnow.com/blog/"},{"@type":"ListItem","position":3,"name":"Developer Tools","item":"https://shoutingnow.com/blog/category/developer-tools/"},{"@type":"ListItem","position":4,"name":"URL Encoding Tutorial & Fixer: Decode %20 Errors (2026)","item":"https://shoutingnow.com/blog/url-encoding-tutorial-and-fixer/"}]}]
```