ARTASCIIcreate with characters
48 entries · ASCII and Unicode labelled

Symbols and emoticons to copy

Choose a symbol and copy it with one click. Each entry identifies ASCII or non-ASCII Unicode. For an aligned grid, start with ASCII alternatives; for an individual decorative symbol, compare Unicode rendering in your destination app.

48 symbols and emoticons

:)

Smile

Strict ASCII

U+003A U+0029

:-)

Smile with a nose

Strict ASCII

U+003A U+002D U+0029

;)

Wink

Strict ASCII

U+003B U+0029

:D

Big grin

Strict ASCII

U+003A U+0044

:P

Tongue out

Strict ASCII

U+003A U+0050

:(

Sad face

Strict ASCII

U+003A U+0028

:-/

Unsure face

Strict ASCII

U+003A U+002D U+002F

^_^

Smiling eyes

Strict ASCII

U+005E U+005F U+005E

-_-

Closed eyes

Strict ASCII

U+002D U+005F U+002D

(^_^)

Happy face

Strict ASCII

U+0028 U+005E U+005F U+005E U+0029

(•‿•)

Unicode smile

Unicode

U+0028 U+2022 U+203F U+2022 U+0029

¯\_(ツ)_/¯

Shrug

Unicode

U+00AF U+005C U+005F U+0028 U+30C4 U+0029 U+005F U+002F U+00AF

->

Right arrow, ASCII

Strict ASCII

U+002D U+003E

<-

Left arrow, ASCII

Strict ASCII

U+003C U+002D

<->

Two-way arrow, ASCII

Strict ASCII

U+003C U+002D U+003E

=>

Double right arrow, ASCII

Strict ASCII

U+003D U+003E

<=

Double left arrow, ASCII

Strict ASCII

U+003C U+003D

<=>

Double two-way arrow, ASCII

Strict ASCII

U+003C U+003D U+003E

→

Rightwards arrow

Unicode

U+2192

←

Leftwards arrow

Unicode

U+2190

↔

Left-right arrow

Unicode

U+2194

↑

Upwards arrow

Unicode

U+2191

↓

Downwards arrow

Unicode

U+2193

⇒

Rightwards double arrow

Unicode

U+21D2

<3

ASCII heart

Strict ASCII

U+003C U+0033

</3

Broken ASCII heart

Strict ASCII

U+003C U+002F U+0033

♥

Filled heart

Unicode

U+2665

♡

Outline heart

Unicode

U+2661

❤

Heart without a selector

Unicode

U+2764

❤️

Heart with emoji presentation

Unicode

U+2764 U+FE0F

❥

Rotated heart

Unicode

U+2765

❣

Heart exclamation

Unicode

U+2763

💙

Blue heart

Unicode

U+1F499

💚

Green heart

Unicode

U+1F49A

💛

Yellow heart

Unicode

U+1F49B

🧡

Orange heart

Unicode

U+1F9E1

+-+

Small ASCII border

Strict ASCII

U+002B U+002D U+002B

| |

ASCII vertical edges

Strict ASCII

U+007C U+0020 U+007C

[ ]

Square brackets

Strict ASCII

U+005B U+0020 U+005D

( )

Parentheses

Strict ASCII

U+0028 U+0020 U+0029

{ }

Braces

Strict ASCII

U+007B U+0020 U+007D

===

ASCII double line

Strict ASCII

U+003D U+003D U+003D

─

Light horizontal line

Unicode

U+2500

│

Light vertical line

Unicode

U+2502

┌

Top-left corner

Unicode

U+250C

┐

Top-right corner

Unicode

U+2510

└

Bottom-left corner

Unicode

U+2514

┘

Bottom-right corner

Unicode

U+2518

ASCII, Unicode and emoji mean different things

ASCII is a character repertoire; Unicode includes it within a much larger set. Unicode is not a font: its standards organisation distinguishes a character from its appearance. In our filters, “Unicode” means an entry containing at least one non-ASCII character.

The RFC 20 table lists ASCII characters. For example, :-) uses three ASCII characters; ♥ is one non-ASCII character. Neither is inherently better: the distinction helps you choose a suitable format.

PurposeStarting choiceLimitation
Keep a simple grid->, <3, ^_^You still need to check the font and spaces.
Add an individual symbol→, ♡, ♥Its appearance may change with the font.
Request emoji rendering❤️ or a coloured heartThe app determines which rendering it supports.
Build a border+, -, |Unicode lines can become misaligned with fallback fonts.

Example 1: one arrow, two encodings

The form -> has two code points: U+002D and U+003E. The form → has one: U+2192. This exact count is not a measurement of visual width.

A -> B
A → B
Two ways to express the same direction. In a text-based table, use the same version throughout a column and preview the result.

The Unicode annex on character width explains why width properties alone cannot impose identical rendering in every environment.

Example 2: a heart and its invisible selector

❤ contains U+2764. The sequence ❤️ contains U+2764 U+FE0F: the second code point requests emoji presentation. This role is defined in the Unicode Emoji specification.

❤  U+2764
❤️  U+2764 U+FE0F
Depending on your device, the two may look identical here. The copied sequences still differ; check which one you are using.

A single visible sign can therefore contain several code points. The list shows them so that you can distinguish a rendering difference from a copy error.

Use symbols with fewer surprises

  1. Choose the category and character set you need.
  2. Copy the complete sign, including any invisible selector.
  3. Paste it into its destination and check the result.
  4. If you see an empty square, try another font or an ASCII alternative.

A messaging app may automatically replace an emoticon. Coloured emoji and some other signs are not guaranteed to occupy one column. For multiline drawings, use the ASCII template library; for more context, read the character-art guide.

Common questions

Why is my symbol black here and coloured elsewhere?

The copied sequence, font and app’s emoji support can change its presentation. Compare the code points first, then inspect the destination’s rendering.

Does the code-point count tell me the width?

No. Several code points can form one visible sign, and a sign can occupy more than one column. ASCII measurements and Unicode text measurements are not interchangeable.