URL Encoding Special Characters: Fast Answers
Need the encoded value for a URL character right now? Use this special characters table to find common percent encodings like space = %20, semicolon = %3B, slash = %2F, plus = %2B, and Unicode/UTF-8 characters such as é = %C3%A9. These are the encodings developers most often need when fixing broken links, API query strings, file names, redirects, and form submissions.
| Need to encode... | Use | Why it matters |
|---|---|---|
| Space | %20 |
Safe in paths and query strings; + only means space in form encoding |
Semicolon ; |
%3B |
Prevents ; from being read as a path or parameter delimiter |
Forward slash / |
%2F |
Keeps a slash as data instead of a path separator |
Plus sign + |
%2B |
Avoids confusion with spaces in form-encoded query strings |
Ampersand & |
%26 |
Keeps query values from splitting into new parameters |
Equals sign = |
%3D |
Keeps query values from looking like key=value separators |
| Unicode text | UTF-8 percent encoding | Encodes each UTF-8 byte, such as é to %C3%A9 |
Why You Need a URL Encoding Reference
URL encoding, also called percent-encoding, turns unsafe URL characters into a % followed by two hexadecimal digits. The rules are simple once you know the context: encode reserved characters when they are data, leave URL delimiters alone when they are structure, and encode Unicode as UTF-8 bytes. This reference is organized so you can quickly answer questions like "what is %20?", "should / be %2F?", "what does %3B mean?", and "how do I encode Unicode in a URL?"
Complete Special Character URL Encoding Table
Here are the standard ASCII special characters and their percent-encoded forms. Use the "Encode when..." column to decide whether the character is URL syntax or data that must be escaped:
| Character | Name | Percent-Encoded | Encode when... |
|---|---|---|---|
space |
Space | %20 |
A space appears in any path, file name, query value, or redirect URL |
! |
Exclamation mark | %21 |
The mark is part of user input or a parameter value |
" |
Double quote | %22 |
Quotes are included in copied text, search terms, or JSON-like values |
# |
Hash / Pound | %23 |
The hash is data, not the start of a URL fragment |
$ |
Dollar sign | %24 |
Prices, tokens, or values include a literal dollar sign |
% |
Percent sign | %25 |
You need a literal % and not the start of another percent-encoded sequence |
& |
Ampersand | %26 |
The ampersand is inside a query value, such as rock & roll |
' |
Single quote | %27 |
Apostrophes appear in names, titles, or search terms |
+ |
Plus sign | %2B |
The plus is literal data and should not be decoded as a space |
, |
Comma | %2C |
A system requires strict encoding for delimiters |
/ |
Forward slash | %2F |
The slash is data inside a path segment or query parameter |
: |
Colon | %3A |
The colon is data, not the scheme or port separator |
; |
Semicolon | %3B |
The semicolon is data, not a path parameter or sub-delimiter |
= |
Equals sign | %3D |
The equals sign is inside a query value or token |
? |
Question mark | %3F |
The question mark is data, not the start of a query string |
@ |
At sign | %40 |
Email addresses or handles are used as URL data |
[ |
Left bracket | %5B |
Brackets are data, not IPv6 host syntax |
] |
Right bracket | %5D |
Brackets are data, not IPv6 host syntax |
\ |
Backslash | %5C |
A Windows path or escaped string contains a backslash |
^ |
Caret | %5E |
The caret appears in copied text or search syntax |
` | Backtick | %60 |
Code snippets or markdown text include a backtick | ||
{ |
Left brace | %7B |
Template, JSON, or route text includes braces |
\| |
Pipe | %7C |
A pipe is part of a value and not a delimiter |
} |
Right brace | %7D |
Template, JSON, or route text includes braces |
Safe (Unreserved) Characters That Never Need Encoding
RFC 3986 defines a set of unreserved characters that can always appear in URLs without encoding. These are completely safe in any URL context: A–Z (uppercase letters), a–z (lowercase letters), 0–9 (digits), and the four special characters hyphen (-), underscore (_), period (.), and tilde (~). If your data consists only of these characters, no encoding is needed. Encoding these characters (which is technically allowed but unnecessary) just adds overhead without adding safety. Note that the tilde (~) was previously considered "unsafe" in an older RFC but is now explicitly unreserved in RFC 3986. This matters because some older systems may still percent-encode the tilde as %7E — this is equivalent but unnecessarily verbose.
Common Extended Latin and European Characters
International characters require multi-byte UTF-8 encoding. Here are frequently encountered characters from European languages:
| Character | Unicode | URL Encoded (UTF-8) | Language |
|---|---|---|---|
| e with acute | U+00E9 | %C3%A9 |
French, Spanish, Portuguese |
| e with grave | U+00E8 | %C3%A8 |
French, Italian |
| n with tilde | U+00F1 | %C3%B1 |
Spanish |
| u with umlaut | U+00FC | %C3%BC |
German |
| o with umlaut | U+00F6 | %C3%B6 |
German, Swedish, Finnish |
| c with cedilla | U+00E7 | %C3%A7 |
French, Portuguese, Turkish |
| sharp s | U+00DF | %C3%9F |
German |
| Euro sign | U+20AC | %E2%82%AC |
Euro sign (3 bytes) |
| British Pound | U+00A3 | %C2%A3 |
British Pound |
| Copyright | U+00A9 | %C2%A9 |
Copyright symbol |
Emoji and 4-Byte Characters
Emoji and characters from supplementary Unicode planes use 4 UTF-8 bytes and produce longer percent-encoded sequences. Here are some common examples:
| Emoji | Name | Unicode | URL Encoded |
|---|---|---|---|
| Grinning face | Grinning face | U+1F600 | %F0%9F%98%80 |
| Red heart | Red heart | U+2764 | %E2%9D%A4%EF%B8%8F |
| Rocket | Rocket | U+1F680 | %F0%9F%9A%80 |
| Check mark | Check mark | U+2705 | %E2%9C%85 |
| Globe | Globe Europe/Africa | U+1F30D | %F0%9F%8C%8D |
The Space Problem: %20 vs. +
The space character has two different encodings depending on the context, and this causes more confusion than almost any other URL encoding topic. In percent-encoding per RFC 3986, a space is encoded as %20. This is the correct encoding for path segments and is also valid in query strings. In application/x-www-form-urlencoded format (HTML form submissions), spaces are encoded as +. Many URL parsers accept both, but the difference matters in specific scenarios. If you send a URL with a + in the path, many servers will treat it as a literal plus sign, not a space. Similarly, a + in a query value that was encoded with encodeURIComponent() represents a literal plus sign, but if the same URL was form-encoded, the + means a space. The safest approach: use %20 for spaces in paths, redirects, and copyable URLs, and be consistent with + vs. %20 in query strings throughout your application.
Control Characters and Non-Printable Characters
Control characters (ASCII 0–31 and 127) and non-printable characters must always be percent-encoded in URLs. Here are the most commonly encountered ones: Newline (\n, ASCII 10) encodes as %0A. Carriage return (\r, ASCII 13) encodes as %0D. Tab (\t, ASCII 9) encodes as %09. Null character (\0, ASCII 0) encodes as %00. Delete (ASCII 127) encodes as %7F. These characters should not appear in URLs at all, but if user input or data contains them, they must be encoded. The null byte (%00) is particularly important from a security perspective — some systems use null bytes to terminate strings, and an unencoded null byte in a URL can lead to security vulnerabilities. Always sanitize and encode user-supplied data before including it in URLs.
Quick Reference: Most Common URL Encodings
For quick day-to-day reference, here are the 15 most commonly needed percent-encoded values that developers encounter: %20 = space, %21 = !, %22 = ", %23 = #, %24 = $, %25 = %, %26 = &, %27 = ', %28 = (, %29 = ), %2B = +, %2C = ,, %2F = /, %3A = :, %3D = =, %3F = ?, %40 = @. Save this list or bookmark this page for quick access when debugging URL encoding issues. Our free URL encoder/decoder tool can also instantly encode or decode any character or string — just paste it in and click encode.
Frequently Asked Questions
What is %20 in URL encoding?
%20 is the percent-encoded form of a space character. Use %20 for spaces in URL paths, file names, redirect URLs, and any context where you want the space to be unambiguous.
Should a space be encoded as %20 or +?
Use %20 for standard URL percent-encoding. Use + only when you are working with application/x-www-form-urlencoded data, such as HTML form submissions or query strings generated by form encoders.
What does %3B mean in a URL?
%3B is the encoded form of a semicolon (;). Encode semicolons when they are part of a value so they are not interpreted as a path parameter separator or sub-delimiter.
What does %2F mean in URL encoding?
%2F is the encoded form of a forward slash (/). Encode / when the slash is data inside a path segment, file name, token, or query value rather than a path separator.
How do you URL encode Unicode characters?
Convert the Unicode character to UTF-8 bytes, then percent-encode each byte. For example, é becomes the bytes C3 A9, so its URL-encoded form is %C3%A9.
Which URL characters do not need encoding?
The unreserved characters A-Z, a-z, 0-9, -, _, ., and ~ do not need URL encoding. Reserved characters like &, =, ?, /, ;, and # should be encoded when they are data.