The character reference Ô
unambiguously denotes the character “Ô” U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX. This does not depend on the doctype declaration or on the character encoding. Thus, browsers that display it as something else behave erroneously.
The use of the Symbol font is an old trick that relies on browser bugs. The Symbol font is a kludge where characters have been replaced by various symbols in a rather arbitrary way. The font contains two variants of the trademark symbol, a serif version in code position D4 (hex.) and a sans-serif version on code position E4. (The code tries to use the serif version in an apparently sans-serif environment.) It’s a really old trick, discussed and criticized well as early as in the 1990s in Alan Flavell’s Using FONT FACE to extend repertoire?
There are several alternative ways to present the correct character U+2122 TRADE MARK SIGN on a web page. No font trickery is needed, and the character should be rendered in the same font as the surrounding text; this happens automatically if you don’t do anything special.
The ways are:
- Writing the character itself (™). This is possible, using a decent editor, if the document encoding is UTF-8 or windows-1252, for example.
- Using the hexadecimal character reference
™
or the decimal character reference ™
. These work independently of character encoding, but they make HTML source a bit cryptic.
- Using the entity reference
™
. This is more mnemonic and works independently of character encoding. In theory, it is not safe in XHTML, though.