This page lists Unicode arrow symbols.

←
→
↑
↓
↔
↕
↖
↗
↘
↙
↚
↛
↮
⟵
⟶
⟷

⇐
⇒
⇑
⇓
⇔
⇕
⇖
⇗
⇘
⇙
⇍
⇏
⇎
⟸
⟹
⟺

⇦
⇨
⇧
⇩
⬄
⇳
⬀
⬁
⬂
⬃

⬅
➡
⬆
⬇
⬈
⬉
⬊
⬋
⬌
⬍

⇆
⇄
⇅
⇵
⇈
⇊
⇇
⇉

⬱
⇶

⇠
⇢
⇡
⇣

⇚
⇛
⤊
⤋
⭅
⭆
⟰
⟱

↢
↣

↼
⇀
↽
⇁
↿
↾
⇃
⇂

⇋
⇌

⟻
⟼

⇽
⇾
⇿

⇜
⇝

⬳
⟿

⥊
⥋
⥌
⥍
⥎
⥏
⥐
⥑

⥒
⥓
⥔
⥕
⥖
⥗
⥘
⥙

⥚
⥛
⥜
⥝
⥞
⥟
⥠
⥡

⥢
⥤
⥣
⥥
⥦
⥨
⥧
⥩
⥮
⥯

⥪
⥬
⥫
⥭

↤
↦
↥
↧

⇤
⇥
⤒
⤓
↨

↞
↠
↟
↡

⇷
⇸
⤉
⤈
⇹

⇺
⇻
⇞
⇟
⇼

⬴
⤀
⬵
⤁

⬹
⤔

⬺
⤕

⤂
⤃
⤄

⬶
⤅

⬻
⤖

⬷
⤐

⬼
⤗
⬽
⤘

⤆
⤇

⤌
⤍
⤎
⤏

⬸
⤑

⤝
⤞
⤟
⤠

⤙
⤚
⤛
⤜

⤡
⤢
⤣
⤤
⤥
⤦
⤪
⤨
⤧
⤩
⤭
⤮
⤯
⤰
⤱
⤲
⤫
⤬

↰
↱
↲
↳
⬐
⬎
⬑
⬏
↴
↵

⤶
⤷
⤴
⤵

↩
↪
↫
↬

⥼
⥽
⥾
⥿

⥂
⥃
⥄
⭀
⥱
⥶
⥸
⭂
⭈
⭊
⥵
⭁
⭇
⭉
⥲
⭋
⭌
⥳
⥴
⥆
⥅

⥹
⥻

⬰
⇴
⥈
⬾
⥇
⬲
⟴

⥷
⭃
⥺
⭄

⇱
⇲

↸
↹
↯
↭
⥉
⥰

⬿
⤳

↜
↝

⤼
⤽

↶
↷
⤾
⤿
⤸
⤹
⤺
⤻

↺
↻
⥀
⥁
⟲
⟳

⇪
⇫
⇬
⇭
⇮
⇯

➳
➴
➵
➶
➷
➸
➹

➔
➘
➙
➚

➩
➪
➫
➬
➭
➮
➯
➱

⇰
➛
➜
➝
➞
➟
➠
➢
➣
➤
➥
➦
➧
➨
➲
➾

➺
➻
➼
➽

◄
►
◅
▻

☚
☛
☜
☝
☞
☟

👆
👇
👈
👉

🔙
🔚
🔛
🔜
🔝

▲
▼
◀
▶

There are about 360 arrow characters. These are from several different sections of Unicode, including:

- Miscellaneous Symbols
- Dingbats
- Miscellaneous Mathematical Symbols-A
- Supplemental Arrows-A
- Supplemental Arrows-B
- Miscellaneous Mathematical Symbols-B
- Supplemental Mathematical Operators
- Miscellaneous Symbols and Arrows

It took me some 20 hours to collect and organize these arrows. They are scattered in different places, and are hard to find. Also, there are a lot symmetry issues, and some mirror image isn't there. Here's some details of my experience.

Note: each Unicode character is assigned a number, technically called its “codepoint”. This number (integer) can be expressed in decimal or hexadecimal. For example, → has codepoint codepoint 8594 or hex 2192.

They are scattered in different code blocks. The most common ones are collected in “Symbols, Arrows (2190–21FF)”. In the beginning of Unicode history, there's just a right pointing arrow of a particular style, because left pointing ones are seldomly or never used. But later, it's realized the left pointing ones are important too, for one reason or another, and sometimes there's a need just for completeness because Unicode became more wide spread. So, the left pointing ones get added, in the same block but different neighborhood, or in another block. Thus you have “Supplemental Arrows-A” and “Supplemental Arrows-B”. For similar reasons, other symmetric versions of the same style such as upward and or downward versions are scattered in wildly different blocks.

For example, here's some arrows and their names

Unicode Hex | Char | Name |
---|---|---|

U+2B05 | ⬅ | LEFTWARDS BLACK ARROW |

U+2B06 | ⬆ | UPWARDS BLACK ARROW |

U+2B07 | ⬇ | DOWNWARDS BLACK ARROW |

However, there's no Unicode char named “RIGHTWARDS BLACK ARROW”. The closest is this:

Unicode Hex | Char | Name |
---|---|---|

U+27A1 | ➡ | BLACK RIGHTWARDS ARROW (old name: BLACK RIGHT ARROW) |

You can see that, this right pointing arrow was there first. The others are added later. The names are inconsistent.

Also, lots of these arrows are from math. When mathematicians use a arrow-like glyph in their notation, usually they are not doing it in any formal way in the sense of formalism or formal languages, so their notation use is very sloppy. They are usually not concerned whether a symbol is a operator or just a glyph to convey a concept. So, in Unicode, the arrows gets into one of these blocks: “Miscellaneous Mathematical Symbols-B”, “Supplemental Mathematical Operators”, “Miscellaneous Symbols and Arrows”. Often, the left/right pair are in different blocks, or the up/down version are not even in a math category.

Here's a example: ⇺ ⇻ ⇼ ⇞ ⇟. There does not seem to have a vertical version of ⇼. The chars ⇞ ⇟ are in category “Symbol, other”, while ⇺ ⇻ ⇼ are in category “Symbol, Math”.

Another example: ⥂ ⥃ ⥄. Note that there does not seem to have a right pointing version of ⥄.

Many arrows do not have symmetric versions. Symmetry here can be reflection thru vertical or horizontal axes, or n*90° rotation, or combination of them. The following are some set of chars missing symmetric versions: ↴ ↵ ↸ ↹ ⤺ ⤻ ⤼ ⤽ ⤪ ⤨ ⤧ ⤩ ⤭ ⤮ ⤯ ⤰ ⤱ ⤲.

Also, when trying to order them, i ran into the problem of devising a ordering scheme. For example, usually i order them by left right up down, like this:. ← → ↑ ↓. But now look at these: ⇆ ⇄ ⇅ ⇵. For the vertical pair, which should come first?

Here's another example of the complexity. There are these chars:

Character | Unicode Name |
---|---|

↶ | ANTICLOCKWISE TOP SEMICIRCLE ARROW |

↷ | CLOCKWISE TOP SEMICIRCLE ARROW |

⤾ | LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW |

⤿ | LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW |

⤸ | RIGHT-SIDE ARC CLOCKWISE ARROW |

⤹ | LEFT-SIDE ARC ANTICLOCKWISE ARROW |

⤺ | TOP ARC ANTICLOCKWISE ARROW |

⤻ | BOTTOM ARC ANTICLOCKWISE ARROW |

If you analyze their names, you can see that a circle can be divided into 8 arcs: {left, right, top, bottom}, and 4 of the diagonal arcs. Each arc can be clockwise or anti-clockwise. 8 arcs, 2 directions, there are a combination of 16 possibilities. First of all, note that not all of them is present. (⁖ there's no char named “TOP ARC CLOCKWISE ARROW”) But given these chars, how do you order them?

Note that some left/right pairs looks very different, even in the same font. For example:

Character | Unicode Name |
---|---|

⬾ | LEFTWARDS ARROW THROUGH X |

⥇ | RIGHTWARDS ARROW THROUGH X |

⬲ | LEFT ARROW WITH CIRCLED PLUS |

⟴ | RIGHT ARROW WITH CIRCLED PLUS |

⬳ | LONG LEFTWARDS SQUIGGLE ARROW |

⟿ | LONG RIGHTWARDS SQUIGGLE ARROW |

⬱ | THREE LEFTWARDS ARROWS |

⇶ | THREE RIGHTWARDS ARROWS |

As a example, the first char shows up in my computer has a double arrow head. That char's Unicode name is “LEFTWARDS ARROW THROUGH X”. It should not be “Two-headed arrow” as in some other chars.

How the chars shows up on your screen may be very different from another person. It depends on your operating system, web browser, your browser and OS configuration, and availability of font on your system.

Typically, the rightward version has better font, correctly designed and vector based, because it is far more popularly used. The leftward version, or other directions, sometimes get added as afterthought or extensions.

Note: if you use Unicode a lot, Emacs is a great tool for Unicode. You can easily insert any Unicode by their decimal number or hex number or name, and find out any of these info of a given Unicode character. See: Emacs and Unicode Tips