Skip to content
New: free AI crawler checker. See if ChatGPT and Claude can read your site. Check now

Popular

Programming Languages

HTML symbol codes: copyright, trademark, arrows, accents

Published  Updated  14 min read 2,797 views Save
HTML symbol codes: a large ampersand circled by symbol coins for copyright, trademark, registered, an arrow and an accented e, each tagged with its named code, above a Find the code for any symbol button
On this page

Quick answer

The HTML code for the copyright symbol is © (or ©), trademark is ™ and registered is ®. All three come from the HTML Standard's list of 2,231 names, as of October 2026. On a page saved and declared as UTF-8, you can type most symbols directly; the table below has the rest.

Say you edit a small US business site's footer by hand. You paste a ©, and the live page shows "©", or a typed code stays on screen as plain text. An HTML symbol code is a short text code, such as ©, that a browser swaps for one character when it draws the page. Our made-up flower shop, Quenby Lane Florals, supplies the footer examples below.

This guide opens with the three ways to write the same symbol and the codes for the symbols US sites use most. Next come copyright, trademark and registered marks in a footer, when a non-breaking space helps, and accented letters and arrows. It closes with the five characters you still escape, why a missing semicolon or a wrong charset breaks a symbol, and how to find the code for any symbol.

Key takeaways

  • A wrong charset garbled typed symbols in our test, while codes still displayed.
  • Put ® on a mark only after the USPTO registers it.
  • End every named code with a semicolon, because newer names fail without one.
  • A UTF-8 page can hold the real ©, so codes become optional.
  • Escape <, > and & in text, and quotes inside attribute values.

Three ways to write the same symbol

Every symbol has a number in Unicode, and HTML gives you three ways to point at it. The HTML Standard's rules for character references say each one starts with an ampersand and comes in named, decimal or hexadecimal form. For the copyright sign, that's &copy;, &#169; and &#xA9;. All three draw the same ©. That's because 169 in decimal and A9 in hex are both its code point, U+00A9.

Unicode charts list that same number in hex, which is why U+00A9 and &#xA9; share their last two digits.

The named form is easiest to remember, but it only works for names on the standard's list. A named code must use "the same case" as that list and end with a semicolon, per the same section. Numeric forms work for any character, which is why they're the fallback when a symbol has no name. So use names for common symbols you'll reread and numbers for rarer ones. MDN's character reference glossary entry calls the whole thing an escape sequence that stands for "another character in the rendered web page." That's also why one symbol can have two or three names: the named references table keeps old aliases on purpose, "for legacy compatibility."

The copyright sign written three ways, with the ampersand, the name or number and the closing semicolon of each code labeledDiagram by DigitalTreed. Code forms from the HTML Standard, read October 29, 2026.

Codes for the symbols US sites use most

That choice is easier with the codes in one place. We took them from the standard's named character references list and had Chrome 156 render each form on a local page:

SymbolShows asNamed codeDecimal codeHex code
Copyright©&copy;&#169;&#xA9;
Registered®&reg;&#174;&#xAE;
Trademark™&trade;&#8482;&#x2122;
Cent¢&cent;&#162;&#xA2;
Degree°&deg;&#176;&#xB0;
Non-breaking space(an unbreakable space)&nbsp;&#160;&#xA0;
Right arrow→&rarr;&#8594;&#x2192;
Left arrow←&larr;&#8592;&#x2190;
Em dash—&mdash;&#8212;&#x2014;
En dash–&ndash;&#8211;&#x2013;
Section§&sect;&#167;&#xA7;
One half½&frac12;&#189;&#xBD;
Bullet•&bull;&#8226;&#x2022;
Ellipsis…&hellip;&#8230;&#x2026;
e acuteé&eacute;&#233;&#xE9;
n tildeñ&ntilde;&#241;&#xF1;
u umlautü&uuml;&#252;&#xFC;

All 21 symbols we tested, including the four syntax characters in a later section, gave the same code point in every form. Copy the named column when there's a name. Use the hex column when all you know is a symbol's U+ number.

Those codes matter most for legal symbols. This quotes federal text and isn't legal advice, so ask a trademark attorney which mark fits your brand.

For copyright, 17 U.S.C. 401 lists three parts of a notice. The first is "the symbol © (the letter C in a circle), or the word “Copyright”, or the abbreviation “Copr.”", then the year of first publication and the owner's name. In HTML, that's &copy; 2026 Quenby Lane Florals for our made-up shop.

Trademarks work differently. The USPTO's trademark basics page lets you use TM for goods or SM for services "even if you haven't filed an application to register your trademark." The ® comes only after federal registration, and only with the goods or services the registration lists. Under 15 U.S.C. 1111, a registrant who skips that notice can lose profits and damages in an infringement suit unless the other side had actual notice. Placement is looser: the USPTO page says you may put the ® anywhere around the mark, though most owners set it "in a superscript or subscript manner to the right."

In HTML, that superscript is Quenby Lane<sup>&reg;</sup>, and the same sup tag works for ™ while the mark is still unregistered.

One gap in the code list matters for service businesses. The standard has no named code for the SM sign, so a service mark needs &#8480;; none of the 2,231 names points to its code point, U+2120. Here's a footer for the made-up shop, written with codes so the source stays plain ASCII:

<footer>
  <p>&copy; 2026 Quenby Lane Florals. All rights reserved.</p>
  <p>Quenby Lane&trade; bouquets. Petal delivery&#8480; in Dayton.</p>
</footer>

Until a registration certificate covers that mark for those goods, &trade; is the honest choice, and it doesn't cost anything to use.

When does a non-breaking space help?

Unlike the legal marks, the non-breaking space is a symbol you can't see, and it's the one people reach for most. It's a space the browser won't break a line at, written &nbsp; or &#160;.

We checked that in Chrome with a box 104 pixels wide holding "Hours: 9 AM". With a normal space the 9 was stranded on the first line, while with 9&nbsp;AM the whole time moved down to the next line as one piece. That's the job it's built for: times, a number and its unit, or a name like "Fig. 3". We picked the 104-pixel width on purpose, because it's just wide enough for "Hours: 9" and too narrow for the AM that follows it.

Two narrow boxes side by side: with a normal space the 9 and AM split across lines, with a non-breaking space they stay togetherDiagram by DigitalTreed. Line breaks and widths measured in our Chrome 156 test, October 29, 2026.

It also doesn't collapse. Browsers squeeze a run of ordinary spaces into one, so "a b" measured 36 pixels wide in our test, while three non-breaking spaces made it 60. Our test used 20-pixel Menlo, where each character is 12 pixels wide, so 36 pixels is a, one space and b, and 60 is all five characters. That's why old pages stacked &nbsp;&nbsp;&nbsp; to indent text. Margins and padding do that job better and survive a redesign; our guide to linking CSS to HTML shows where those rules go.

Accented letters and arrows: type them or use a code?

Like the non-breaking space, accented letters and arrows have codes, but on a modern page you often don't need them. The W3C's guide to character escapes is blunt: "Because you should use UTF-8 for the character encoding of the page, you won't normally need to use character escapes." It adds that escapes make source harder to read and can make files much bigger.

So if your page is saved as UTF-8 and says so, you can type café, jalapeño or → straight into the HTML. On a Mac, Apple's accent marks guide says to press and hold a letter key to open the accent menu. Its Character Viewer guide opens a searchable symbol panel with Fn-E or Edit > Emoji & Symbols. On Windows, Microsoft's symbol and Alt code page lists ALT+0169 for © and ALT+0174 for ®. Check your editor's save setting, too; our roundup of free HTML editors covers the main choices. In Word, there's also a hex-code shortcut, which the last section covers.

Codes still win in a few places. A CMS field or an email template may mangle pasted characters, while &rarr; is plain ASCII and survives any copy and paste. The W3C also suggests escapes for invisible or look-alike characters, so someone reading the source can tell a no-break space from a normal one. Its own example is the right-to-left mark, U+200F, which has no visible form at all. For an arrow in a call-to-action, our HTML button guide shows where the code goes in the label.

Five characters you still escape

That freedom has limits. Some characters need a code even on a UTF-8 page, because HTML itself uses them. The W3C escapes guide says three should "always appear in content as escapes", and two more matter inside attributes. Here's the set, with the code for each:

  • &lt; for the less-than sign, so the browser doesn't read the start of a tag
  • &gt; for the greater-than sign, which closes a tag
  • &amp; for the ampersand, so it doesn't start a code by accident
  • &quot; for a double quote inside an attribute wrapped in double quotes
  • &#x27; for an apostrophe inside an attribute wrapped in single quotes

Visitor text is where it bites. OWASP's cross-site scripting prevention cheat sheet lists the same five conversions as its HTML entity encoding rule. If your site shows what people type into a form, encode it on output, and our HTML contact form guide walks through a form handler.

To show a code as text, the way this guide does, escape its ampersand: &amp;copy; displays as &copy;, which our test confirmed.

Code samples need the same care. Wrap the sample in pre and code tags, then escape every < and & inside it, or the browser renders the markup instead of showing it. If a sample appears as a working link or a bold word instead of code, a bracket slipped through unescaped. A quick view of the published page catches it, and fixing it takes one find-and-replace in your editor. A CMS code block, like the ones in this guide, escapes the sample for you, which is safer than typing each code by hand.

Why a missing semicolon or a wrong charset breaks a symbol

Even with the right characters, symbols still break, and it's usually one of two mistakes: a code typed slightly wrong, or a page that names the wrong encoding.

We tested both locally, starting with the semicolon. The standard's parsing rules still accept 106 old names without one, such as copy, reg, nbsp and eacute, so &copy2026 came out as ©2026. Newer names get no such help, and &trade 2026 stayed on screen exactly as typed. Case matters as well: &COPY; worked, because it's an old alias, but &Trade; did not. Numeric codes get the same leniency, so &#x2122 2026 still drew ™. Type the semicolon anyway: a hex digit typed straight after an unclosed code becomes part of its number.

The odder results come from those old names. &notaname; rendered as "¬aname;", because the browser matched the old name "not" and turned it into the ¬ sign. A query string in plain text, size=1&copy=2, showed as "size=1©=2". Inside an href, the same string was left alone, a rule the spec keeps "for historical reasons".

Writing &amp; for every ampersand avoids both cases. The rest of link markup, from href to target, gets its own walk-through in our HTML links guide.

The second mistake does more damage. We saved a page as UTF-8 but declared it as windows-1252, an older Western encoding. Every symbol typed directly broke: © became "©", café became "café" and ™ became "â„¢". The same three symbols written as codes all displayed correctly, because a code is plain ASCII and doesn't depend on the encoding. The page reported its character set as windows-1252. So Chrome read each multi-byte symbol as two or three separate characters.

Two paper slips compare one page declared with the wrong encoding: typed symbols turn into garbled letters, while the same symbols written as codes display correctlyDiagram by DigitalTreed. Outputs copied from our Chrome 156 wrong-charset test, October 29, 2026.

The fix is one line. The HTML Standard's encoding section says the Encoding standard "requires use of the UTF-8 character encoding", and the declaration must fit in the first 1,024 bytes. The W3C's encoding declaration guide shows <meta charset="utf-8"> right after the opening head tag. The same page notes that the HTTP header has "higher precedence" than that tag. So check what your server sends with our HTTP header checker.

One thing outranks even the header. A UTF-8 byte-order mark at the very start of the file wins over every other declaration, the W3C says.

What we tested

One page held the 21 symbols in every form plus 10 deliberate mistakes; a second was declared with the wrong encoding. Both ran in Chrome 156.0.8078.48 on macOS 27.0.1 from 127.0.0.1 on October 29, 2026:

&copy2026        -> ©2026
&trade 2026      -> &trade 2026
&#153;           -> ™
&COPY;           -> ©
&Trade;          -> &Trade;
size=1&copy=2    -> size=1©=2
&amp;copy;       -> &copy;
caf&eacute       -> café
&#x2122 2026     -> ™ 2026
&notaname;       -> ¬aname;
Our local test report listing each mistyped code beside the text Chrome displayed for itScreenshot: our test report on 127.0.0.1, Chrome 156, October 29, 2026.

That's one browser on one Mac, but Python's html.unescape gave the same text as Chrome for all 10 mistakes, since they're both following the same spec rules.

How to find the code for any symbol

Once those mistakes are fixed, you'll still meet symbols that aren't in any short table. Two routes find their codes.

The first is the full list. The named references table holds 2,231 entries, many of them aliases, so &COPY; and &copy; both give ©. Search the page for a word in the symbol's name, such as "frac" for fractions. If there's no name, find the symbol's Unicode number and write it as hex, so U+2120 becomes &#x2120;. Your keyboard is the second route. In Word, Microsoft says typing a hex code and pressing Alt+X turns it into the symbol.

On a Mac, the Character Viewer lets you search for a symbol by name and insert it, and Windows has Character Map for the same job. Once the symbol sits in a UTF-8 page, the code is optional.

Our take: save every page as UTF-8, type everyday symbols directly, and keep codes for the five syntax characters, invisible spaces and anything a CMS might mangle. When a symbol looks wrong, check the charset before you touch the codes. If you're new to markup, our HTML tutorial for beginners covers tags and attributes from the beginning.

Questions about HTML symbol codes

Frequently asked

Can I use the ® symbol before my trademark is registered?

No. The USPTO says to use ® once your mark is registered, and TM or SM before that. Under 15 U.S.C. 1111, the words "Reg. U.S. Pat. & Tm. Off." are an accepted notice too.

Are HTML entity names case-sensitive?

Names are, but hex digits aren't. The W3C's escapes guide says "The hex number is not case-sensitive", so &#xa9; and &#xA9; both give ©.

Can I use HTML symbol codes in CSS?

Not in the HTML form. The W3C escapes guide says CSS uses a backslash and the hex number, such as \20AC for the euro sign. A space must follow it if the next character is 0-9 or a-f.

How we made this guide: We ran two local test pages in headless Chrome on 127.0.0.1 and checked each result against the WHATWG list. Every rule above is cited at the spot it's used. Facts checked by the DigitalTreed team on October 29, 2026.

First published July 2020 as five basic HTML tags. Rewritten October 29, 2026: now a symbol code reference with a browser test and the US rules for legal marks.

Sources

Want more customers online?

  • SEO, ads, social media and websites
  • A fixed quote before any work starts
  • A plain report every month

What is wrong?

Step 1 of 2. Pick the closest reason.

Reason

Was this post helpful?

Written by

I have been serving web content with my passionate writing skills since 2020. My skills have benefited clients from 20 countries, resulting in 10x audience interactions, improved readability, and SEO-friendly content.

More posts by Eram N.

Comments

No comments yet. Start the conversation below.

Leave a comment

Plain text only, no links or email addresses. Comments are reviewed first.