Reference8 min read

Complete URL Encoded Characters Table (ASCII + Unicode)

Complete reference table of URL encoded characters. Covers all ASCII printable characters (32-126), common Unicode characters, and their percent-encoded equivalents as defined by RFC 3986.

ASCII Control and Special Characters

ASCII characters in the range 0-31 and character 127 are control characters. These are not printable and must always be percent-encoded in URLs. The most commonly encountered control characters in URL contexts are the space (ASCII 32), horizontal tab (ASCII 9), and newline characters (ASCII 10 and 13).

According to RFC 3986, any octet that is not an unreserved character, a reserved character used for its reserved purpose, or a percent-encoded triplet must be percent-encoded. In practice, this means most non-alphanumeric characters should be encoded in URI components.

CharacterASCII CodeURL EncodedDescription
(tab)9%09Horizontal Tab
(LF)10%0ALine Feed
(CR)13%0DCarriage Return
(space)32%20Space

Printable ASCII Characters

Below is a complete reference of all printable ASCII characters (codes 32-126) and their URL-encoded forms. Characters marked as "unreserved" in RFC 3986 do not require encoding. Reserved characters must be encoded when used outside their reserved purpose.

CharacterASCIIHexURL EncodedType
(space)3220%20Special
!3321%21Reserved
"3422%22Unsafe
#3523%23Reserved
$3624%24Reserved
%3725%25Special
&3826%26Reserved
'3927%27Reserved
(4028%28Reserved
)4129%29Reserved
*422A%2AReserved
+432B%2BReserved
,442C%2CReserved
-452D%2DUnreserved
.462E%2EUnreserved
/472F%2FReserved
0-948-5730-39Not requiredUnreserved
:583A%3AReserved
;593B%3BReserved
<603C%3CUnsafe
=613D%3DReserved
>623E%3EUnsafe
?633F%3FReserved
@6440%40Reserved
A-Z65-9041-5ANot requiredUnreserved
[915B%5BReserved
\925C%5CUnsafe
]935D%5DReserved
^945E%5EUnsafe
_955F%5FUnreserved
`9660%60Unsafe
a-z97-12261-7ANot requiredUnreserved
{1237B%7BUnsafe
|1247C%7CUnsafe
}1257D%7DUnsafe
~1267E%7EUnreserved

Common Unicode Encodings

Unicode characters are first encoded to their UTF-8 byte sequence, then each byte is individually percent-encoded. Multi-byte characters produce multiple percent-encoded triplets.

CharacterDescriptionUTF-8 BytesURL Encoded
a with umlautLatin Small Letter A with DiaeresisC3 A4%C3%A4
n with tildeLatin Small Letter N with TildeC3 B1%C3%B1
e with acuteLatin Small Letter E with AcuteC3 A9%C3%A9
u with umlautLatin Small Letter U with DiaeresisC3 BC%C3%BC
Euro signEuro SignE2 82 AC%E2%82%AC
Pound signPound SignC2 A3%C2%A3
Yen signYen SignC2 A5%C2%A5
CJK zhongCJK Unified Ideograph (middle)E4 B8 AD%E4%B8%AD
Cyrillic YaCyrillic Capital Letter YaD0 AF%D0%AF
Arabic BaArabic Letter BaD8 A8%D8%A8

How Multi-Byte Characters Are Encoded

UTF-8 uses a variable-length encoding scheme. Characters in the ASCII range (0-127) use one byte. Characters outside this range use two to four bytes. When percent-encoding, each byte of the UTF-8 representation becomes a separate %XX triplet.

Two-byte characters (U+0080 to U+07FF): These include most Latin extended, Greek, Cyrillic, and Arabic characters. For example, the German letter sharp s (U+00DF) encodes to UTF-8 bytes C3 9F, which becomes %C3%9F.

Three-byte characters (U+0800 to U+FFFF): These include CJK characters, most symbols, and the Basic Multilingual Plane. For example, the Japanese hiragana character (U+3042) encodes to UTF-8 bytes E3 81 82, which becomes %E3%81%82.

Four-byte characters (U+10000 to U+10FFFF): These include emoji and supplementary characters. For example, the grinning face emoji (U+1F600) encodes to UTF-8 bytes F0 9F 98 80, which becomes %F0%9F%98%80.

// JavaScript demonstration of multi-byte encoding
console.log(encodeURIComponent('u with umlaut'));
// Two bytes: "%C3%BC"

console.log(encodeURIComponent('CJK char'));
// Three bytes: "%E4%B8%AD"

console.log(encodeURIComponent('emoji'));
// Four bytes: "%F0%9F%98%80"

// You can verify by decoding
console.log(decodeURIComponent('%C3%BC'));  // u with umlaut
console.log(decodeURIComponent('%E4%B8%AD')); // CJK char

Related Articles

Try Our Free Tools