HTML entity for a left arrow ←

← / ← / ←

← is the HTML entity for the left arrow ←, U+2190 LEFTWARDS ARROW, and ← and ← are its numeric references. HTML5 also reads ←, ←, ← and ←, though JSX doesn’t. In UTF-8 it’s E2 86 90.

Character    ← U+2190 LEFTWARDS ARROW
Named        ←
Numeric      ←    ←
UTF-8        E2 86 90

Encoding a back link’s text gives ← Back to posts.

<- needs escaping

An ASCII left arrow starts with <, the character that opens a tag. Browsers recover from <- in text and show it, but the HTML standard counts it as a parse error (invalid-first-character-of-tag-name). In JSX it’s a hard error: Babel, TypeScript, esbuild and oxc all reject <p><- Back</p>. Write &larr;, &lt;- or, in JSX, {'<-'}.

Names are case-sensitive: &lArr; is ⇐, not ←.

←  U+2190  &larr;     ⇐  U+21D0  &lArr;
↔  U+2194  &harr;     ↩  U+21A9  &larrhk;           (HTML5 only)
⟵  U+27F5  &longleftarrow;                          (HTML5 only)

← isn’t an emoji; ↩ and ⬅ (U+2B05) are, and some systems draw them in color.

Screen readers may read the arrow aloud, so a “← Back” link announces more than it should. Hide the arrow:

<a href="/posts"><span aria-hidden="true">&larr;</span> Back to posts</a>

Right-to-left pages

Arrows don’t flip in right-to-left text. Unicode gives them Bidi_Mirrored=No, so ← still points left in a dir="rtl" page, while parentheses and « » are mirrored. In Arabic or Hebrew, “back” points right, so pick the character for the direction or flip it with CSS:

[dir="rtl"] .back-arrow { display: inline-block; transform: scaleX(-1); }

&larr; is an HTML 4 name, so every JSX compiler decodes it in text; in braces write {'\u2190'}. CommonMark decodes &larr; and its aliases in Markdown text and leaves them literal in code spans. In CSS generated content it’s content: "\2190".

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.