%C2%A0 is the URL-encoded non-breaking space.

In a URL, %C2%A0 stands for the non-breaking space (2 UTF-8 bytes). Here is when to encode it, what it does in each part of a URL, and what every major language outputs.

Quick facts

CharacterNBSP (invisible)
NameNon-breaking space
UnicodeU+00A0
UTF-8 bytesC2 A0 (2 bytes)
Percent-encoded%C2%A0
Lowercase form%c2%a0 — identical meaning
Double-encoded%25C2%25A0
HTML form encoding%C2%A0
RFC 3986 classNot allowed in URLs
HTML entity 

What it means in a URL

The non-breaking space (U+00A0) is two bytes in UTF-8, so it encodes as %C2%A0. It sneaks in when text is copied from Word, web pages or PDFs, and looks exactly like a normal space.

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

Search or lookup failures because a pasted value contains %C2%A0 instead of %20. Normalise to a normal space before encoding.

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)%C2%A0encoded
JavaScript encodeURI(s)%C2%A0encoded
JavaScript URLSearchParams%C2%A0encoded
Python urllib.parse.quote(s)%C2%A0encoded
Python quote(s, safe="")%C2%A0encoded
Python urllib.parse.quote_plus(s)%C2%A0encoded
PHP rawurlencode($s)%C2%A0encoded
PHP urlencode($s)%C2%A0encoded
Java URLEncoder.encode(s, UTF_8)%C2%A0encoded
Go url.QueryEscape(s)%C2%A0encoded
Go url.PathEscape(s)%C2%A0encoded
Ruby URI.encode_www_form_component(s)%C2%A0encoded
Ruby ERB::Util.url_encode(s)%C2%A0encoded
C# / .NET Uri.EscapeDataString(s)%C2%A0encoded

Decoding it

decodeURIComponent('%C2%A0') returns the non-breaking space. Python: urllib.parse.unquote('%C2%A0'); PHP: rawurldecode('%C2%A0'). Paste any string into the URL decoder to decode it in your browser.

← %00 Null byte  ·  Full URL encoding table  ·  %E2%80%99 Right single quotation mark (’) →

Common questions.

%C2%A0 is the percent-encoded form of the non-breaking space — UTF-8 bytes C2 A0, each written as % plus two hex digits. Decoding the URL turns it back into the character.

Yes. Hex digits in percent-encoding are case-insensitive, so %c2%a0 and %C2%A0 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 %C2%A0, Python’s quote(s, safe="") gives %C2%A0, PHP’s rawurlencode gives %C2%A0.

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.