%3B is a semicolon

%3B is a semicolon.

Character";"
NameSemicolon
Encoded%3B
ReservedYes — it has a special meaning in a URL

Why it breaks things

A semicolon is an RFC 3986 sub-delimiter, the same group as the comma. It has no fixed job in the generic syntax — reserved for a scheme to define, not the standard itself. Nothing treats it as a divider on its own.

History gave it one anyway. An older URI spec let a path segment carry semicolon-separated "parameters", as in /cars;color=red;year=2012, and some frameworks still parse paths this way — Spring's matrix variables, off by default. A literal semicolon in a path can be split off as a parameter instead of staying in the value, with no error.

The other old habit treats a semicolon like a second ampersand, splitting a query string on both & and ;. Some early servers did this, following a W3C recommendation later abandoned. Modern parsers, including URLSearchParams, do not — a raw semicolon in a query value stays part of that value.

Real examples

Without encoding

https://example.com/products/salt;pepper/reviews

With encoding

https://example.com/products/salt%3Bpepper/reviews

A framework that reads path parameters the old way treats ;pepper as a matrix parameter attached to the segment, not as part of the product name. The route matches on salt alone, and pepper disappears from the value without any error.

Without encoding

https://example.com/search?tags=cats;dogs&sort=new

With encoding

https://example.com/search?tags=cats%3Bdogs&sort=new

In a modern parser this semicolon is harmless — it stays inside the tags value. But code written against the old semicolon-as-separator convention reads this as tags=cats plus a stray dogs parameter, silently dropping half the intended value.

Decode something

History

    Nothing yet.

    History stays in this browser. It is never sent to our server.

    Common questions

    Do I need to encode a semicolon in a normal query string?
    Usually not. Modern browsers and libraries, including URLSearchParams, treat a semicolon as ordinary data inside a query value. Encoding it matters mainly if the value will travel through a path segment, or through older software that still splits on a semicolon.
    What is a matrix parameter?
    A way of attaching name-value pairs to one path segment using semicolons, like /cars;color=red;year=2012, from an older URI specification. Most modern frameworks ignore it by default, but some, like Spring, support it when explicitly enabled.
    Why did part of my search query go missing?
    If a value in the query string contains a raw semicolon and the code handling it follows the old convention of splitting on both & and ;, that value gets cut in two, and the second half is misread as its own parameter.
    Is %3B the same kind of character as %2C?
    Both are RFC 3986 sub-delimiters with no meaning fixed by the URL standard itself. The difference is history: a semicolon has been given real, if inconsistent, structural meaning by specific frameworks and older specs, while a comma has mostly stayed inert.