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.

DecHexCharacterEncodedRFC 3986
000NUL%00Control
101SOH%01Control
202STX%02Control
303ETX%03Control
404EOT%04Control
505ENQ%05Control
606ACK%06Control
707BEL%07Control
808BS%08Control
909TAB%09Control
100ALF%0AControl
110BVT%0BControl
120CFF%0CControl
130DCR%0DControl
140ESO%0EControl
150FSI%0FControl
1610DLE%10Control
1711DC1%11Control
1812DC2%12Control
1913DC3%13Control
2014DC4%14Control
2115NAK%15Control
2216SYN%16Control
2317ETB%17Control
2418CAN%18Control
2519EM%19Control
261ASUB%1AControl
271BESC%1BControl
281CFS%1CControl
291DGS%1DControl
301ERS%1EControl
311FUS%1FControl
3220space%20Must encode
3321!%21Reserved (sub-delim)
3422"%22Must encode
3523#%23Reserved (gen-delim)
3624$%24Reserved (sub-delim)
3725%%25Must encode
3826&%26Reserved (sub-delim)
3927'%27Reserved (sub-delim)
4028(%28Reserved (sub-delim)
4129)%29Reserved (sub-delim)
422A*%2AReserved (sub-delim)
432B+%2BReserved (sub-delim)
442C,%2CReserved (sub-delim)
452D-%2DUnreserved
462E.%2EUnreserved
472F/%2FReserved (gen-delim)
483000Unreserved
493111Unreserved
503222Unreserved
513333Unreserved
523444Unreserved
533555Unreserved
543666Unreserved
553777Unreserved
563888Unreserved
573999Unreserved
583A:%3AReserved (gen-delim)
593B;%3BReserved (sub-delim)
603C<%3CMust encode
613D=%3DReserved (sub-delim)
623E>%3EMust encode
633F?%3FReserved (gen-delim)
6440@%40Reserved (gen-delim)
6541AAUnreserved
6642BBUnreserved
6743CCUnreserved
6844DDUnreserved
6945EEUnreserved
7046FFUnreserved
7147GGUnreserved
7248HHUnreserved
7349IIUnreserved
744AJJUnreserved
754BKKUnreserved
764CLLUnreserved
774DMMUnreserved
784ENNUnreserved
794FOOUnreserved
8050PPUnreserved
8151QQUnreserved
8252RRUnreserved
8353SSUnreserved
8454TTUnreserved
8555UUUnreserved
8656VVUnreserved
8757WWUnreserved
8858XXUnreserved
8959YYUnreserved
905AZZUnreserved
915B[%5BReserved (gen-delim)
925C\%5CMust encode
935D]%5DReserved (gen-delim)
945E^%5EMust encode
955F_%5FUnreserved
9660`%60Must encode
9761aaUnreserved
9862bbUnreserved
9963ccUnreserved
10064ddUnreserved
10165eeUnreserved
10266ffUnreserved
10367ggUnreserved
10468hhUnreserved
10569iiUnreserved
1066AjjUnreserved
1076BkkUnreserved
1086CllUnreserved
1096DmmUnreserved
1106EnnUnreserved
1116FooUnreserved
11270ppUnreserved
11371qqUnreserved
11472rrUnreserved
11573ssUnreserved
11674ttUnreserved
11775uuUnreserved
11876vvUnreserved
11977wwUnreserved
12078xxUnreserved
12179yyUnreserved
1227AzzUnreserved
1237B{%7BMust encode
1247C|%7CMust encode
1257D}%7DMust encode
1267E~%7EUnreserved
1277FDEL%7FControl

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.

CharacterNameCode pointUTF-8 encoded
éLatin Small Letter E With AcuteU+00E9%C3%A9
üLatin Small Letter U With DiaeresisU+00FC%C3%BC
ñLatin Small Letter N With TildeU+00F1%C3%B1
çLatin Small Letter C With CedillaU+00E7%C3%A7
ßLatin Small Letter Sharp SU+00DF%C3%9F
€Euro SignU+20AC%E2%82%AC
£Pound SignU+00A3%C2%A3
©Copyright SignU+00A9%C2%A9
’Right Single Quotation MarkU+2019%E2%80%99
“Left Double Quotation MarkU+201C%E2%80%9C
”Right Double Quotation MarkU+201D%E2%80%9D
–En DashU+2013%E2%80%93
—Em DashU+2014%E2%80%94
…Horizontal EllipsisU+2026%E2%80%A6
NBSPNo-Break SpaceU+00A0%C2%A0
你CJK Unified Ideograph-4F60U+4F60%E4%BD%A0
яCyrillic Small Letter YaU+044F%D1%8F
😀Grinning FaceU+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

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.