Short answer: Tap any symbol below to copy it, then paste straight into the message box. To type them instead: press Windows key + . on Windows or Control + Command + Space on Mac, both of which work inside the Slack composer. If a symbol keeps getting swallowed, wrap it in backticks.
Tap to copy
Not sure what a character is? Paste it into the symbol identifier and it’ll tell you its name, code point and how to type it.
Slack doesn’t use Markdown — it uses mrkdwn
This is the single most useful thing to know, and it explains nearly every formatting surprise in Slack.

Slack’s markup is called mrkdwn, and it looks like Markdown but isn’t. The differences bite:
| You want | Markdown | Slack mrkdwn |
|---|---|---|
| Bold | **bold** | *bold* — one asterisk |
| Italic | *italic* or _italic_ | _italic_ — underscores only |
~~strike~~ | ~strike~ — one tilde | |
Code | `code` | `code` — same |
| Code block | ``` | ``` — same |
| Blockquote | > quote | > quote — same |
| Link | [text](url) | <url|text> — angle brackets, pipe |
So a single asterisk bolds text in Slack where Markdown needs two, and headings, tables and Markdown-style links simply don’t exist. Paste Markdown into Slack and it comes out mangled — not because Slack is broken, but because it’s a different syntax wearing the same clothes.
By default you get a formatting toolbar in the message box rather than raw markup. If you’d rather type the characters yourself, go to your profile picture → Preferences → Advanced → Input Options and tick Format messages with markup. Two things change when you do: formatting is applied after you send the message rather than as you type, and messages you copy and paste appear as plain text.
Why your symbols get eaten
Three characters are load-bearing in mrkdwn, and any symbol string containing them is at risk:
- Underscores
_italicise the text between them. - Asterisks
*bold it. - Tildes
~strike it through.
The classic casualty is the shrug. Paste ¯\_(ツ)_/¯ into Slack and it often arrives as ¯(ツ)/¯ — the left arm missing — because the backslash acts as an escape character and is consumed doing its job, and the underscore pair can italicise the face on top of that.
Fix one — double the backslash. Send ¯\\_(ツ)_/¯ and the reader sees the complete face. Our kaomoji guide covers the same problem across Discord and Reddit.
Fix two — use the slash command. Type /shrug at the start of a message and Slack appends a correctly formed ¯\_(ツ)_/¯ for you. It only works at the beginning of the message, and you can add text: /shrug I dunno sends your text with the shrug on the end.
Fix three — the universal one. Wrap anything in backticks and Slack stops interpreting it entirely:
`¯\_(ツ)_/¯` → renders literally, every character intact
Inline code preserves underscores, asterisks, tildes and backslashes exactly as typed. If a symbol string keeps mangling and you don’t want to debug why, backticks end the argument. The trade-off is the monospace box around it.
Typing symbols directly in the composer
Slack doesn’t intercept your operating system’s character input, so every normal method works inside the message box.
Windows. Press Windows key + . (or Windows key + ;) to open the emoji panel, then use the Ω symbols tab for arrows, currency, maths and punctuation. The same panel has a kaomoji tab. Full details in the Windows emoji shortcut guide.
Windows Alt codes work too, if you have a numeric keypad: hold Alt, type the code, release. Alt + 0176 gives °, Alt + 0177 gives ±, Alt + 0149 gives •.
Mac. Press Control + Command + Space for the Character Viewer, which has a full symbol browser. Option shortcuts also work as normal — Option + 8 is •, Shift + Option + 8 is °, Option + Shift + hyphen is —. See the Mac emoji shortcut guide.
Phones. Long-press keys on the keyboard, or switch to the symbol layout. Slack’s mobile composer accepts anything your keyboard produces.
For symbols you use daily, set up a text replacement at the OS level rather than hunting each time — it works in Slack and everywhere else. Our text replacement guide walks through it on both platforms.
Emoji shortcodes vs text symbols
Slack has two different systems that people conflate:
Emoji shortcodes use colons: type :white_check_mark: and Slack converts it to an emoji picture. These are Slack’s own names, they only work inside Slack, and they produce coloured emoji — not text characters. Typing : plus two letters opens the autocomplete.
Text symbols are real Unicode characters: ✓ ✗ → ★ • °. They copy out of Slack into email, documents and spreadsheets unchanged, they work in code blocks, and they stay monochrome. For anything that will leave Slack — a doc, a commit message, a status line someone will paste elsewhere — use text symbols.
Watch the auto-conversion. Slack turns typed emoticons into emoji by default, so :) becomes a picture. Turn it off in Preferences → Messages & Media → Convert my typed emoticons into emoji if you want your text to stay text.
A few text symbols get drawn as emoji anyway. ⚠ (U+26A0) and ⭐ (U+2B50) carry emoji presentation and will render coloured in Slack even though you typed a text character. If you need them monochrome, pick a non-emoji equivalent — ★ (U+2605) instead of ⭐, for example.
Custom emoji
Any workspace member with permission can upload custom emoji from Preferences → Customize (or the emoji picker’s Add Emoji button). Useful to know: custom emoji are per-workspace. Anyone outside your workspace — in a Slack Connect channel, or reading a copied message — sees the raw :shortcode: text instead of the image. Text symbols never have this problem.
Channel and display names
Channel names are lowercase only and can’t contain spaces or periods. Slack normalises what you type, so symbol-heavy channel names generally don’t survive.
Display names are far more permissive and accept Unicode symbols and emoji. Worth restraint though: a display name full of symbols is read out character by character by screen readers, and it makes you harder to find in search and mentions.
Troubleshooting
| Problem | Fix |
|---|---|
| The shrug loses its left arm | Backslash consumed as an escape. Use /shrug, or send ¯\\_(ツ)_/¯. |
| Text between two symbols went italic | Underscores italicise in mrkdwn. Wrap in backticks, or remove one underscore. |
| Text went bold unexpectedly | A single * bolds in Slack, unlike Markdown’s **. Backticks disable it. |
| Pasted Markdown looks wrong | Slack uses mrkdwn — no headings, no tables, different link syntax. Reformat, don’t paste. |
:) keeps turning into an emoji | Preferences → Messages & Media → uncheck Convert my typed emoticons into emoji. |
| A symbol shows as a box | Font coverage gap. See symbol showing as a box. |
Custom emoji shows as :name: to someone else | Custom emoji are workspace-only. Use a text symbol or a standard emoji. |
| Symbols vanish when I paste code | Paste inside a code block (```) so nothing is interpreted. |
Recap
| If you want | Do this |
|---|---|
| A symbol, fast | Copy from the buttons above |
| To type one on Windows | Win + . → Ω symbols tab |
| To type one on Mac | Ctrl + Cmd + Space |
| A shrug that survives | Type /shrug |
| Any string to render literally | Wrap it in backticks |
| Bold text | *one asterisk*, not two |
| Something that leaves Slack intact | Use text symbols, not :shortcodes: |
Frequently asked questions
Does Slack use Markdown?
No. Slack uses its own syntax called mrkdwn, which looks similar but differs in important ways. Bold takes one asterisk rather than two, italics use underscores only, and headings, tables and Markdown-style links are not supported at all.
Why does the shrug lose its left arm in Slack?
Because the backslash acts as an escape character and gets consumed escaping the underscore that follows it. Type /shrug at the start of your message and Slack inserts a correct shrug for you, or send a doubled backslash instead.
How do I stop Slack from formatting my symbols?
Wrap the text in single backticks for inline code, or in triple backticks for a code block. Slack does not interpret asterisks, underscores, tildes or backslashes inside code formatting, so every character renders exactly as typed.
What is the difference between :white_check_mark: and ✓ in Slack?
The shortcode produces a coloured emoji that only exists inside Slack, while ✓ is a real Unicode character. Text symbols survive being copied into documents, email and code, and they stay monochrome; emoji shortcodes do not travel outside Slack.
How do I type an arrow or a bullet in Slack?
Press Windows key + . on Windows and use the symbols tab, or Control + Command + Space on Mac to open the Character Viewer. Both work inside the Slack message box, and you can also copy the character and paste it in.
Can I use symbols in a Slack channel name?
Not really. Channel names are lowercase only and cannot contain spaces or periods, and Slack normalises what you type. Display names are much more permissive and do accept Unicode symbols and emoji.
Written by Igor R. Tested on Slack for Windows 11, macOS, iOS and Android. Last updated September 2026. Symbol code points follow the Unicode Standard.