About Left Right Double Arrow
Left Right Double Arrow is the Unicode character ⇔ at codepoint U+21D4 in the Arrows block of the Basic Multilingual Plane (BMP).
Reference
The doubled biconditional arrow. General category Sm, Arrows block, Unicode 1.1, Math property, relation class, East Asian Width Ambiguous, line-break class AI — a profile it shares with exactly six other characters in the Arrows block: the four compass arrows, the left-right arrow and the rightwards double arrow. Four HTML names, and as with the one-way double arrow the entity table is more talkative than the standard: beside ⇔, ⇔ and ⇔ it carries ⇔. The chart gives the character no annotation, no alias and no cross-reference, which is conspicuous next to arrows in the same block that do get glosses. No emoji property. Bidi_Mirrored is No, though the symmetric glyph makes that harmless.
Typical uses
- The biconditional, "if and only if", in logic and mathematics
- Statements of equivalence in proofs and lecture notes
- Two-way rewrite rules in formal grammars
At a glance
- U+21D4, Arrows; Unicode 1.1 (1993); general category Sm
- East Asian Width Ambiguous; line break class AI; Bidi_Mirrored No
- HTML: ⇔, ⇔, ⇔, ⇔
- No annotation in the Unicode chart; no Windows-1252 slot; no emoji form
Historical Notes
Origins
The doubled stroke for equivalence and the single stroke for the same idea have coexisted for as long as either has been printed, and which one an author reserves for what is a question about that author. This page states the encoding and does not attempt the attribution.
Unicode
Unicode 1.1, released in 1993, in the Arrows block. The entry is bare — no annotation, no alias, no cross-reference — where several arrows in the same block carry glosses. The standard encodes the shape and declines to say what it means.
Where the meaning is written down instead
The WHATWG entity table names it: ⇔ is one of the four HTML spellings, and no equivalent entity exists for a reading the standard has not endorsed. That is the pattern across this pair of double arrows — the web platform's data records the logical reading that Unicode's chart leaves out.
Developer Notes
| Unicode Codepoint | |
| Decimal | |
| UTF-8 (hex) | |
| UTF-16 (hex) | |
| HEX Entity | |
| HTML Entity | |
| CSS (\xxxx) | |
| JavaScript | |
| Python |
How to Use Left Right Double Arrow
To use the Left Right Double 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: '\21D4';.
In JavaScript and TypeScript the escape '\u21D4' evaluates to ⇔. In Python source, write '\u21D4'.
The character encodes to E2 87 94 as UTF-8 bytes and 21D4 as UTF-16 code units. Its decimal codepoint is 8660.
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
- Four HTML names, including ⇔. All four resolve to the same single codepoint.
- Bidi_Mirrored is No. The glyph is symmetric, so nothing visibly breaks in right-to-left text — unlike the one-way double arrow, where it does.
- East Asian Width Ambiguous, so a CJK-locale terminal may give it two cells.
- Not an emoji, and it cannot be made one.
- Pattern_Syntax applies; no Windows-1252 slot; stable under all four normalisation forms.
In the Wild
On 5 August 2026 every occurrence of the double biconditional arrow was on a page about logic.
Six were on Wikipedia's article on "if and only if", which redirects the character itself and states that "logical symbols, such as ↔ and ⇔, are used instead of these phrases" — putting both arrows in one sentence as alternatives rather than as a distinction. One was on the article on the material conditional, in the same notation table that lists three spellings for implication. One was a chart specimen.
Pages change; this is what those showed on the day.
FAQ
Does the doubled stroke mean it is about the formula rather than in it?
Some texts draw that distinction and disagree about which way it runs. Unicode attaches no annotation to this character, so nothing in the standard supports the reading.
Is it interchangeable with the single arrow?
In practice, usually — until an author defines otherwise. Find their notation section before assuming.
Why is there an entity called ⇔?
Because the WHATWG entity table records the logical reading. Unicode's chart does not.
What is the longer version?
A typographic variant at a separate codepoint, not a separate operator. The same statement can look different in two papers and mean the same thing.