How to make bold text on Discord that stays bold
Discord has bold, italic, underline and strikethrough — but only if you type them in a way Discord recognises. Copy styled text from anywhere else and it arrives plain. Here is exactly what Discord reads, why your paste loses its formatting, and the one method that works every single time.
Why your bold formatting disappears when you paste into Discord
Discord does not read formatting from your clipboard. It reads its own syntax, and that syntax is written as ordinary characters.
When you select ship it on a web page, the clipboard receives six plain letters plus a hidden tag saying “render these bold”. That tag is HTML, and Discord is not an HTML renderer. It takes the letters, finds no ** in them, and drops the instruction on the floor. Word and Google Docs are worse: their bold is a font attribute that never leaves the document at all.
So the rule is simple. Discord formatting lives in the characters, or it does not exist. That cuts both ways: type **ship it** and Discord styles it, but copy that styled message back out and you get the asterisks again, because the styling is a property of the message, not of the text you selected.
Unicode sidesteps the whole problem. Instead of asking Discord to bold the text, you replace each letter with the bold version of that letter. There is no instruction to lose, so nothing can drop it — not a paste, not a forward, not a screenshot-to-text, and not a different Discord client on a different device.
Discord's formatting syntax
This is the complete set Discord recognises when you type it yourself. These are Discord's own rules, which differ from standard Markdown in several important places.
| Style | Type this | Result | Shortcut |
|---|---|---|---|
| Bold | **bold** | Bold | Ctrl + B |
| Italic | *italic* | Italic | Ctrl + I |
| Bold italic | ***both*** | Bold and italic | Ctrl + B then Ctrl + I |
| Underline | __underline__ | Underlined | Ctrl + U |
| Strikethrough | ~~gone~~ | Struck through | Ctrl + Shift + X |
| Inline code | `code` | Monospace | — |
| Code block | ```code``` | Fenced block with language | — |
| Quote | > quoted | Indented block quote | Shift + Enter |
| Spoiler | ||hidden|| | Blurred until clicked | — |
| Heading | **# Heading** | Bold heading line | — |
| Link | [label](https://url) | Clickable link | — |
| Masked link | <https://url> | Link showing only the address | — |
| List | - item or 1. item | Bulleted or numbered | — |
Two Discord quirks that catch everyone out. First, __text__ is an underline in Discord, not a bold run the way it is in Markdown — if you copied a bold snippet from a README, it will show up underlined here. Second, underscores and asterisks only work at word boundaries: snake_case_words stays untouched, because Discord sees no emphasis inside a word. Use *snake\_case\* or switch to a Unicode style if you need the inner part styled.
Unicode text that Discord renders correctly
For anything Discord cannot express — coloured headings, script names, fullwidth titles, decorative display text — swap the letters instead of tagging them. These are the styles that render cleanly across Windows, macOS, Android and iOS:
Why these work on Discord specifically. The Discord client draws every message with a system font and falls back to other installed fonts when a character is missing, rather than showing a blank box. The Mathematical Alphanumeric Symbols block is core Unicode, so it is present on essentially every device Discord runs on. The same is not always true for the combining marks that draw Unicode underlines — prefer Discord's native __underline__ for that one.
Character limits: the part people forget
A Discord message holds 2000 characters, or 4000 with Nitro. Unicode text burns through that budget faster than it looks, because most styled letters above U+FFFF are stored as a surrogate pair and count as two characters.
A 15-character name in bold Unicode becomes roughly 30 characters. Three lines of a bold announcement can exceed 2,000 characters while looking like 800 on screen. The character counter above the message box shows the real number, so the app will warn you — but the fix is to pick a single-character style for long messages. Sans bold, bold, italic, script, fraktur, fullwidth, small caps and the shape styles all use one character per letter. Only the Mathematical block styles double up.
Usernames, nicknames and channel names
- Display names and nicknames: Unicode works, up to 32 characters for the username itself. Count the styled length, not the visible length.
- Channel and server names: Unicode does not work. Discord restricts these to lowercase letters, numbers, hyphens and underscores, and silently strips everything else.
- Server descriptions, forum posts and rich presence: full Unicode, including combining-mark underline and colour highlights.
- Server boost banners: accent colours are limited to a small palette, so pick highlight colours that survive being remapped.
Troubleshooting: why your text still looks plain
- The asterisks are visible. Discord did not parse them. Markdown only applies at word boundaries and outside code blocks, and a blank line between the markers and the text stops it working.
- Only part of the line is styled. A style ran into an unstyled character, a link, or a code span and stopped there. Check for an unmatched backtick.
- It looks fine on your PC, plain on your phone. A combining mark or a rarer glyph was dropped. Switch to bold or italic Unicode, which every font ships.
- You see empty boxes. The device has no font covering that character. Try a more common style; the generator will not emit an unassigned code point for exactly this reason.
- It is inside a code block. Code spans render literally, including Unicode, in monospace with no combining support. Move the styled text outside the backticks.
Frequently asked questions
Why does my bold formatting disappear when I paste into Discord?
Discord reads formatting from its own markdown syntax, written as plain characters such as **bold**. When you copy text from a web page or Word, the bold exists only as hidden HTML or a font attribute, not as those characters. Discord discards what it cannot read, so the paste arrives unstyled.
Fix it by typing the markup in Discord itself, or by copying Unicode bold characters that need no markup at all.
How do I type bold text in Discord on mobile?
Type ** before your text and ** after it, so **your text here**. On desktop, Ctrl+B does the same thing.
You can also select text you have already typed and use the context menu or the formatting toolbar that appears above the keyboard.
How do I underline text in Discord?
Discord has an underline style even though it has no menu for it. Put two underscores on each side: __underlined text__. Ctrl+U works on desktop.
Note that in Discord, unlike Markdown, __bold__ inside a word renders as an underline rather than a bold run.
Does Unicode bold text work inside Discord?
Yes. Discord renders text with your system font and falls back to other installed fonts for characters it does not have, so Mathematical Bold characters such as U+1D41A display correctly on Windows, macOS, Android and iOS.
This is the only method that survives copy, paste and forwarding, because the styling travels as characters instead of markup.
Can I use fancy text in a Discord channel name or server name?
No. Discord restricts channel and server names to lowercase letters, numbers, hyphens and underscores, and silently strips any other character.
Fancy Unicode works in messages, nicknames, display names, server descriptions and forum posts — just not in the name field itself.
How many characters does Unicode bold text use in a Discord message?
Discord's limit is 2000 characters per message, or 4000 with Nitro. A bold Unicode letter above U+FFFF is stored as a surrogate pair, so it counts as two. A 20-word sentence can go from roughly 100 characters to over 200, which eats a tenth of the limit.
Single-character styles such as script, fraktur, fullwidth and small caps do not have this problem.