™ 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 © and ®, &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 ℠ 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 ™ 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.