Looking for the exact hexadecimal percent code for a URL character? This percent encoding reference table lists all common ASCII characters, symbols, and reserved URI characters alongside their standard hex representations.
Use this cheat sheet when debugging query parameters, configuring NGINX / Apache rewrite rules, or building API integrations.
Most common URL encoded characters
- Space: %20 (or + in form queries)
- Exclamation mark (!): %21
- Double quote ("): %22
- Hash / Fragment (#): %23
- Dollar sign ($): %24
- Percent sign (%): %25
- Ampersand (&): %26
- Single quote ('): %27
- Open parenthesis ((): %28
- Close parenthesis ()): %29
- Asterisk (*): %2A
- Plus sign (+): %2B
- Comma (,): %2C
- Forward slash (/): %2F
- Colon (:): %3A
- Semicolon (;): %3B
- Less than (<): %3C
- Equals sign (=): %3D
- Greater than (>): %3E
- Question mark (?): %3F
- At symbol (@): %40
- Open bracket ([): %5B
- Backslash (\): %5C
- Close bracket (]): %5D
- Caret (^): %5E
- Backtick (`): %60
- Open curly brace ({): %7B
- Pipe (|): %7C
- Close curly brace (}): %7D
Reserved vs. Unreserved URI characters
According to RFC 3986, characters are classified into two groups:
- Unreserved (do not encode): A-Z a-z 0-9 - _ . ~
- Reserved (encode when used as data): : / ? # [ ] @ ! $ & ' ( ) * + , ; =
Encoding UTF-8 & Emoji characters
Characters outside basic ASCII (such as accented letters or emojis) are converted into their multi-byte UTF-8 representation, and each byte is percent-encoded individually:
ĂŠ (UTF-8: C3 A9) -> %C3%A9 Ăą (UTF-8: C3 B1) -> %C3%B1 đĽ (UTF-8: F0 9F 94 A5) -> %F0%9F%94%A5
What to encode vs what to leave alone
Unreserved characters (AâZ aâz 0â9 - _ . ~) never need encoding; reserved characters need encoding unless you mean them structurally. So a path separator is â/â, but a literal â/â inside a filename becomes â%2Fâ. Domains are the exception: IDNs are converted via punycode, and percent-encoding in a domain is rejected, not tolerated. Practically: encode only the piece you are free to change â the value â and keep the URL skeleton readable for the humans who will have to debug it.
- When in doubt, encode the value, not the whole URL.
- Single-char high-ampersander: â&â inside a query value needs â%26â or it splits the pair.
- Keep the table page bookmarked â the hex patterns stop being guesswork once you can look them up.
Frequently asked questions
Space is %20, slash (/) is %2F, and question mark (?) is %3F.
Ampersand (&) is %26 and equals (=) is %3D.
The percent sign itself is %25. When double-encoding happens, %20 becomes %2520.
RFC 3986 specifies that uppercase hexadecimal digits (%2F instead of %2f) are the preferred standard, though decoders accept both.