%7C is the URL-encoded vertical bar (|).

In a URL, %7C stands for the vertical bar (|). Here is when to encode it, what it does in each part of a URL, and what every major language outputs.

Quick facts

Character|
NameVertical bar (pipe)
UnicodeU+007C
UTF-8 bytes7C (1 byte)
Percent-encoded%7C
Lowercase form%7c — identical meaning
Double-encoded%257C
HTML form encoding%7C
RFC 3986 classNot allowed in URLs

What it means in a URL

Not allowed raw; encoded as %7C. Often used as a separator inside values (Google Fonts’ family=Inter|Roboto, Microsoft Safe Links’ data=).

RFC 3986 class: Not allowed in URLs. It is outside the characters RFC 3986 permits, so it must always be percent-encoded.

When to encode it

Where it appearsWhat to do
Path segmentEncode
Query valueEncode
FragmentEncode
Form bodyEncode

The mistake to watch for

Logging and CSV pipelines that split on | and break when a raw pipe appears in a logged URL.

What each language produces

Every function in this table encodes it. Output for the single character, UTF-8 input, tested against the real runtimes (see the encoding comparator for your own strings).

FunctionOutput
JavaScript encodeURIComponent(s)%7Cencoded
JavaScript encodeURI(s)%7Cencoded
JavaScript URLSearchParams%7Cencoded
Python urllib.parse.quote(s)%7Cencoded
Python quote(s, safe="")%7Cencoded
Python urllib.parse.quote_plus(s)%7Cencoded
PHP rawurlencode($s)%7Cencoded
PHP urlencode($s)%7Cencoded
Java URLEncoder.encode(s, UTF_8)%7Cencoded
Go url.QueryEscape(s)%7Cencoded
Go url.PathEscape(s)%7Cencoded
Ruby URI.encode_www_form_component(s)%7Cencoded
Ruby ERB::Util.url_encode(s)%7Cencoded
C# / .NET Uri.EscapeDataString(s)%7Cencoded

Decoding it

decodeURIComponent('%7C') returns the vertical bar (|). Python: urllib.parse.unquote('%7C'); PHP: rawurldecode('%7C'). Paste any string into the URL decoder to decode it in your browser.

← %7B Left curly brace  ·  Full URL encoding table  ·  %7D Right curly brace →

Common questions.

%7C is the percent-encoded form of the vertical bar (|), whose byte value is 0x7C. Decoding the URL turns it back into the character.

Yes. Hex digits in percent-encoding are case-insensitive, so %7c and %7C mean the same thing. RFC 3986 recommends uppercase, and mixing cases can make caches and analytics count one URL as two.

Use your language’s encoder on the value: encodeURIComponent in JavaScript gives %7C, Python’s quote(s, safe="") gives %7C, PHP’s rawurlencode gives %7C.

More from the toolkit.

About this page. Written and maintained by Sri Murugan Systems, the developer of urlencodedecode.com. Character classes follow RFC 3986 §2; language outputs were generated by running each function in its real runtime.