About Left Right Arrow
Left Right Arrow is the Unicode character ↔ at codepoint U+2194 in the Arrows block of the Basic Multilingual Plane (BMP).
Reference
A single shaft with a head at each end. General category Sm, Arrows block, Unicode 1.1, Math property, relation class, East Asian Width Ambiguous, line-break class AI — the same technical profile as the one-way arrows it sits beside. What separates it is emoji: Unicode's emoji data lists it at emoji version 0.6, and it is not in Emoji_Presentation. So it defaults to plain text and needs a following variation selector to render as the coloured button. Its chart annotation is the Z notation reading, "relation". Three HTML names.
Typical uses
- The biconditional, "if and only if", in logic and mathematics
- Two-way relationships, ranges and swaps in diagrams
- Resize handles and horizontal-scroll affordances in interfaces
- With a variation selector, the left-right arrow emoji
At a glance
- U+2194, Arrows; Unicode 1.1 (1993); general category Sm
- East Asian Width Ambiguous; line break class AI; Bidi_Mirrored No
- HTML: ↔, ↔, ↔
- Emoji since E0.6, but text by default — the coloured form needs U+FE0F
Historical Notes
Origins
A doubled arrowhead is the obvious way to draw reversibility, and it has been used that way in diagrams for far longer than any encoding. The datable part of this character's history is the encoding, and the later decision that turned it into two things at once.
Unicode
Unicode 1.1, released in 1993, in the Arrows block, with the Z notation annotation "relation" as its only gloss. The standard says what it does in one formal language and declines to say what it means anywhere else.
The emoji layer
The character was folded into the emoji set at emoji version 0.6 — but only as Emoji, not as Emoji_Presentation. That distinction is the entire practical difference between this arrow and the arrows on either side of it: the presentation default stayed text, so the character behaves exactly as it did before unless a variation selector asks for the coloured form.
Developer Notes
| Unicode Codepoint | |
| Decimal | |
| UTF-8 (hex) | |
| UTF-16 (hex) | |
| HEX Entity | |
| HTML Entity | |
| CSS (\xxxx) | |
| JavaScript | |
| Python |
How to Use Left Right Arrow
To use the Left Right Arrow symbol (↔) in HTML, insert the
entity ↔ directly into your markup. The decimal entity ↔ works in any HTML-serialised document.
In CSS pseudo-elements use content: '\2194';.
In JavaScript and TypeScript the escape '\u2194' evaluates to ↔. In Python source, write '\u2194'.
The character encodes to E2 86 94 as UTF-8 bytes and 2194 as UTF-16 code units. Its decimal codepoint is 8596.
This is a text-based Unicode character. It will render in the current font on most platforms. If a font lacks this glyph, the browser may show a placeholder or fall back to a system font.
Things to know
- Emoji, but not Emoji_Presentation. Alone it renders as text; followed by U+FE0F it renders as the coloured button. A sequence without the selector is unqualified, and what arrives in a chat window may not be what you copied.
- That also means the string you store is one codepoint or two, depending on how it was typed. Length checks and truncation both need to know which.
- Bidi_Mirrored is No, though a symmetric glyph makes that harmless here.
- East Asian Width Ambiguous; Pattern_Syntax applies; no Windows-1252 slot; stable under all four normalisation forms.
- Three HTML names; ↔ is the one to write.
In the Wild
The distribution is a clean picture of one meaning dominating. On 5 August 2026 Wikipedia's article on "if and only if" carried eight occurrences — the page redirects the character itself, and its text says plainly that "logical symbols, such as ↔ and ⇔, are used instead of these phrases". The article on the material conditional carried five, the article on the Arrows block four as chart specimens, and the article on elements of a set two, inside a definition of membership.
Not one of them was an emoji. Every occurrence was the bare character in text presentation, which is exactly what the absence of Emoji_Presentation predicts.
Pages change; this is what those showed on the day.
FAQ
Why is my arrow black and white?
Because the character defaults to text. Add U+FE0F after it for the coloured emoji form.
Is it the same as the double-lined arrow?
No. Many authors reserve left right double arrow for the logical biconditional and use this one for ordinary two-way relationships. Neither convention is universal.
Can I type it as <->?
You can, and it will not carry the meaning to a screen reader or a search index. Use the character.
How many characters is it?
One, unless you added a variation selector, in which case the string holds two codepoints for one visible glyph.