HTML entity for the trademark sign ™

™ / ™ / ™

™ is the HTML entity for the trademark sign ™, U+2122 TRADE MARK SIGN. ™ and ™ are its numeric references, and HTML5 also reads ™. In UTF-8 it takes three bytes, E2 84 A2.

Character    ™ U+2122 TRADE MARK SIGN
Named        ™    ™
Numeric      ™    ™
UTF-8        E2 84 A2

Encoding a product name gives Example™ Studio.

™ is an old mistake

Old pages and CMS exports can contain ™. Code point 153 (0x99) is a C1 control character, but it’s where Windows-1252 put ™, so the HTML standard tells browsers to read ™ as ™ and report a parse error. This tool does the same: decoding ™ gives ™. Write ™ in new markup. The same table turns – and — into the en and em dash, and “ and ” into curly quotes.

It needs its semicolon

Unlike &copy and &reg, &trade has no legacy short form, so browsers show &trade 2026 exactly as typed. Always close it with ;.

™, ® and ℠

™ marks a trademark you claim; ® is for registered ones. The service mark ℠, U+2120, has no HTML name, so it’s &#x2120; or the raw character. Most fonts already draw ™ small and raised, so it rarely needs <sup>.

Unicode lists ™ as an emoji with text presentation by default: followed by the variation selector U+FE0F, some systems draw it as a color emoji, and on its own it stays text. Unicode’s NFKC normalization turns ™ into the letters TM, which matters if you normalize usernames, slugs or search terms.

In CSS, JSX and Markdown

.product::after { content: "\2122"; }

JSX decodes &trade; in text; in braces write {'\u2122'}. CommonMark decodes it in Markdown text and leaves it literal in code spans. (tm) becomes ™ only with a typographer such as markdown-it’s typographer option.

Try it in the HTML Entity Encoder & Decoder

Encoded

1 character becomes a reference, named where a name exists and &#x…; where one doesn’t.

Encoding always escapes &amp;, &lt;, &gt;, &quot; and &#39; — the characters that mean something to an HTML parser.

Runs in your browser. Nothing you enter is sent anywhere.