URL encoding table: every character and its %XX code.
Look up any character’s percent-encoded form. All 128 ASCII characters with their hex code and RFC 3986 class, plus common accented letters, symbols and emoji in UTF-8.
Most-searched codes
%20 space %2F / %3A : %3F ? %3D = %26 & %23 # %25 % %2B + %40 @ %2C , %27 ' %22 "
All 128 ASCII characters
Letters, digits and - . _ ~ never need encoding. Every other character is written as % plus its byte value in two hex digits. Linked codes have their own page explaining where they matter.
| Dec | Hex | Character | Encoded | RFC 3986 |
|---|---|---|---|---|
| 0 | 00 | NUL | %00 | Control |
| 1 | 01 | SOH | %01 | Control |
| 2 | 02 | STX | %02 | Control |
| 3 | 03 | ETX | %03 | Control |
| 4 | 04 | EOT | %04 | Control |
| 5 | 05 | ENQ | %05 | Control |
| 6 | 06 | ACK | %06 | Control |
| 7 | 07 | BEL | %07 | Control |
| 8 | 08 | BS | %08 | Control |
| 9 | 09 | TAB | %09 | Control |
| 10 | 0A | LF | %0A | Control |
| 11 | 0B | VT | %0B | Control |
| 12 | 0C | FF | %0C | Control |
| 13 | 0D | CR | %0D | Control |
| 14 | 0E | SO | %0E | Control |
| 15 | 0F | SI | %0F | Control |
| 16 | 10 | DLE | %10 | Control |
| 17 | 11 | DC1 | %11 | Control |
| 18 | 12 | DC2 | %12 | Control |
| 19 | 13 | DC3 | %13 | Control |
| 20 | 14 | DC4 | %14 | Control |
| 21 | 15 | NAK | %15 | Control |
| 22 | 16 | SYN | %16 | Control |
| 23 | 17 | ETB | %17 | Control |
| 24 | 18 | CAN | %18 | Control |
| 25 | 19 | EM | %19 | Control |
| 26 | 1A | SUB | %1A | Control |
| 27 | 1B | ESC | %1B | Control |
| 28 | 1C | FS | %1C | Control |
| 29 | 1D | GS | %1D | Control |
| 30 | 1E | RS | %1E | Control |
| 31 | 1F | US | %1F | Control |
| 32 | 20 | space | %20 | Must encode |
| 33 | 21 | ! | %21 | Reserved (sub-delim) |
| 34 | 22 | " | %22 | Must encode |
| 35 | 23 | # | %23 | Reserved (gen-delim) |
| 36 | 24 | $ | %24 | Reserved (sub-delim) |
| 37 | 25 | % | %25 | Must encode |
| 38 | 26 | & | %26 | Reserved (sub-delim) |
| 39 | 27 | ' | %27 | Reserved (sub-delim) |
| 40 | 28 | ( | %28 | Reserved (sub-delim) |
| 41 | 29 | ) | %29 | Reserved (sub-delim) |
| 42 | 2A | * | %2A | Reserved (sub-delim) |
| 43 | 2B | + | %2B | Reserved (sub-delim) |
| 44 | 2C | , | %2C | Reserved (sub-delim) |
| 45 | 2D | - | %2D | Unreserved |
| 46 | 2E | . | %2E | Unreserved |
| 47 | 2F | / | %2F | Reserved (gen-delim) |
| 48 | 30 | 0 | 0 | Unreserved |
| 49 | 31 | 1 | 1 | Unreserved |
| 50 | 32 | 2 | 2 | Unreserved |
| 51 | 33 | 3 | 3 | Unreserved |
| 52 | 34 | 4 | 4 | Unreserved |
| 53 | 35 | 5 | 5 | Unreserved |
| 54 | 36 | 6 | 6 | Unreserved |
| 55 | 37 | 7 | 7 | Unreserved |
| 56 | 38 | 8 | 8 | Unreserved |
| 57 | 39 | 9 | 9 | Unreserved |
| 58 | 3A | : | %3A | Reserved (gen-delim) |
| 59 | 3B | ; | %3B | Reserved (sub-delim) |
| 60 | 3C | < | %3C | Must encode |
| 61 | 3D | = | %3D | Reserved (sub-delim) |
| 62 | 3E | > | %3E | Must encode |
| 63 | 3F | ? | %3F | Reserved (gen-delim) |
| 64 | 40 | @ | %40 | Reserved (gen-delim) |
| 65 | 41 | A | A | Unreserved |
| 66 | 42 | B | B | Unreserved |
| 67 | 43 | C | C | Unreserved |
| 68 | 44 | D | D | Unreserved |
| 69 | 45 | E | E | Unreserved |
| 70 | 46 | F | F | Unreserved |
| 71 | 47 | G | G | Unreserved |
| 72 | 48 | H | H | Unreserved |
| 73 | 49 | I | I | Unreserved |
| 74 | 4A | J | J | Unreserved |
| 75 | 4B | K | K | Unreserved |
| 76 | 4C | L | L | Unreserved |
| 77 | 4D | M | M | Unreserved |
| 78 | 4E | N | N | Unreserved |
| 79 | 4F | O | O | Unreserved |
| 80 | 50 | P | P | Unreserved |
| 81 | 51 | Q | Q | Unreserved |
| 82 | 52 | R | R | Unreserved |
| 83 | 53 | S | S | Unreserved |
| 84 | 54 | T | T | Unreserved |
| 85 | 55 | U | U | Unreserved |
| 86 | 56 | V | V | Unreserved |
| 87 | 57 | W | W | Unreserved |
| 88 | 58 | X | X | Unreserved |
| 89 | 59 | Y | Y | Unreserved |
| 90 | 5A | Z | Z | Unreserved |
| 91 | 5B | [ | %5B | Reserved (gen-delim) |
| 92 | 5C | \ | %5C | Must encode |
| 93 | 5D | ] | %5D | Reserved (gen-delim) |
| 94 | 5E | ^ | %5E | Must encode |
| 95 | 5F | _ | %5F | Unreserved |
| 96 | 60 | ` | %60 | Must encode |
| 97 | 61 | a | a | Unreserved |
| 98 | 62 | b | b | Unreserved |
| 99 | 63 | c | c | Unreserved |
| 100 | 64 | d | d | Unreserved |
| 101 | 65 | e | e | Unreserved |
| 102 | 66 | f | f | Unreserved |
| 103 | 67 | g | g | Unreserved |
| 104 | 68 | h | h | Unreserved |
| 105 | 69 | i | i | Unreserved |
| 106 | 6A | j | j | Unreserved |
| 107 | 6B | k | k | Unreserved |
| 108 | 6C | l | l | Unreserved |
| 109 | 6D | m | m | Unreserved |
| 110 | 6E | n | n | Unreserved |
| 111 | 6F | o | o | Unreserved |
| 112 | 70 | p | p | Unreserved |
| 113 | 71 | q | q | Unreserved |
| 114 | 72 | r | r | Unreserved |
| 115 | 73 | s | s | Unreserved |
| 116 | 74 | t | t | Unreserved |
| 117 | 75 | u | u | Unreserved |
| 118 | 76 | v | v | Unreserved |
| 119 | 77 | w | w | Unreserved |
| 120 | 78 | x | x | Unreserved |
| 121 | 79 | y | y | Unreserved |
| 122 | 7A | z | z | Unreserved |
| 123 | 7B | { | %7B | Must encode |
| 124 | 7C | | | %7C | Must encode |
| 125 | 7D | } | %7D | Must encode |
| 126 | 7E | ~ | %7E | Unreserved |
| 127 | 7F | DEL | %7F | Control |
Common non-ASCII characters
Anything outside ASCII is first converted to UTF-8 bytes, and each byte is encoded — so one character becomes two, three or four %XX codes. Older systems using Latin-1 or Windows-1252 produce single-byte codes instead (é as %E9), which is the usual cause of garbled text.
| Character | Name | Code point | UTF-8 encoded |
|---|---|---|---|
| é | Latin Small Letter E With Acute | U+00E9 | %C3%A9 |
| ü | Latin Small Letter U With Diaeresis | U+00FC | %C3%BC |
| ñ | Latin Small Letter N With Tilde | U+00F1 | %C3%B1 |
| ç | Latin Small Letter C With Cedilla | U+00E7 | %C3%A7 |
| ß | Latin Small Letter Sharp S | U+00DF | %C3%9F |
| € | Euro Sign | U+20AC | %E2%82%AC |
| £ | Pound Sign | U+00A3 | %C2%A3 |
| © | Copyright Sign | U+00A9 | %C2%A9 |
| ’ | Right Single Quotation Mark | U+2019 | %E2%80%99 |
| “ | Left Double Quotation Mark | U+201C | %E2%80%9C |
| ” | Right Double Quotation Mark | U+201D | %E2%80%9D |
| – | En Dash | U+2013 | %E2%80%93 |
| — | Em Dash | U+2014 | %E2%80%94 |
| … | Horizontal Ellipsis | U+2026 | %E2%80%A6 |
| NBSP | No-Break Space | U+00A0 | %C2%A0 |
| 你 | CJK Unified Ideograph-4F60 | U+4F60 | %E4%BD%A0 |
| я | Cyrillic Small Letter Ya | U+044F | %D1%8F |
| 😀 | Grinning Face | U+1F600 | %F0%9F%98%80 |
Reading the table
- Unreserved — safe anywhere, never encode.
- Reserved — they give a URL its structure (
/ ? # & =…). Encode them when they are part of your data. More detail: URL reserved characters. - Must encode — not allowed in a URL at all (space, quotes,
< > { } | \ ^ `,%itself). - Control — invisible characters such as tab, line feed and null; always encoded, and usually a sign of a bug or an attack when they appear.
Sources & standards
- RFC 3986 §2.1 percent-encoding, §2.2 reserved and §2.3 unreserved characters. rfc-editor.org/rfc/rfc3986
- RFC 3629 — UTF-8, the byte encoding used for non-ASCII characters. rfc-editor.org/rfc/rfc3629
- Unicode Character Database — character names. unicode.org/ucd
Common questions.
%20. In query strings and form data a space may also be written as +.
Only the unreserved characters: A–Z, a–z, 0–9, hyphen, period, underscore and tilde. Reserved characters need encoding when they are data; everything else always does.
It is converted to its UTF-8 bytes and each byte is written as % plus two hex digits — é becomes %C3%A9, € becomes %E2%82%AC.
No. %2f and %2F mean the same thing; RFC 3986 recommends uppercase.
More from the toolkit.
About this page. Written and maintained by Sri Murugan Systems, the developer of urlencodedecode.com. Codes are generated from the UTF-8 bytes of each character; classes follow RFC 3986 §2.