Unicode has more than 600 arrows spread across a dozen blocks. For running text, the plain arrows in the Arrows block (→ U+2192 and friends) are the right choice: every font that covers basic symbols has them and they sit at the height of lowercase text. For buttons and calls to action, the heavier Dingbats arrows such as ➜ and ➔ read better at small sizes.
In mathematics and logic, ⇒ means “implies” and ⇔ “if and only if”, while the long arrows ⟶ and ⟹ are used for mappings and derivations so that they do not collide with surrounding symbols. A few arrows (➡ ⬅ ⬆ ⬇ ↩ ↪ ⤴ ⤵) are also emoji: add U+FE0F after them to force the colour form, or U+FE0E to keep them as plain text.
Click any symbol to copy it. Names link to the full character page with every encoding.