HTML entity for a check mark ✓

✓ / ✓ / ✓

✓ is the HTML entity for the check mark ✓, U+2713 CHECK MARK, and ✓ and ✓ are its numeric references. ✓ is an alias. Both names were added in HTML5; HTML 4 had none. In UTF-8 it’s E2 9C 93.

Character    ✓ U+2713 CHECK MARK
Named        ✓    ✓   (HTML5)
Numeric      ✓   ✓
UTF-8        E2 9C 93

Encoding ✓ Saved ✔ Verified ✗ Failed gives:

✓ Saved ✔ Verified ✗ Failed

The heavy check mark ✔ has no name, so the tool writes its hex reference (hex digits can be either case); the ballot X ✗ is ✗.

The marks and their names

✓  U+2713  CHECK MARK              ✓
✔  U+2714  HEAVY CHECK MARK        ✔
✗  U+2717  BALLOT X                ✗
✘  U+2718  HEAVY BALLOT X          ✘
☑  U+2611  BALLOT BOX WITH CHECK   ☑
✅  U+2705  WHITE HEAVY CHECK MARK  ✅

Case matters: ⨯ is ⨯, U+2A2F, the vector cross product. ✓ and ✗ are plain text symbols; ✔ and ☑ are emoji with text style by default, drawn in color when followed by U+FE0F, and ✅ is always an emoji. If your web font lacks ✓, the browser takes it from a fallback font, so it may not match the text around it.

JSX doesn’t know ✓

JSX compilers decode only the names HTML 4 defined, plus &apos;. In Babel, TypeScript, esbuild and oxc, <td>&check;</td> renders the text &check;, while <td>&#x2713;</td> renders ✓. In JSX, write the numeric reference, the character itself or {'\u2713'}. Browsers, CommonMark and Python’s html.unescape read &check; fine.

Lists and tables

A checklist needs no marks in the markup; CSS Lists Level 3 lets a string be the marker:

ul.done { list-style-type: "\2713  "; }    /* two spaces: the escape eats one */

In a comparison table, a lone ✓ may be announced as “check mark” or skipped, depending on the screen reader. Pair it with words:

<td><span aria-hidden="true">&#x2713;</span> Included</td>

Try it in the HTML Entity Encoder & Decoder

Encoded

3 characters become 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.