DEV Community

owen
owen

Posted on

Styling plain text that survives copy-paste: a Unicode primer (and the tools I use)

The problem: there is no "bold" in a bio

Here's a scenario you've probably hit: you want to emphasize something in an
Instagram bio, a Discord nickname, a Slack message, or a plain-text README β€”
and there's no formatting toolbar. No bold, no italic, no superscript button.

The reason is simple: these fields store plain text. Formatting isn't
data; it's a rendering layer applied by a rich-text editor. Take the editor
away and the formatting never existed.

The workaround that does travel with the text is Unicode.

Unicode already contains "styled" characters

Unicode isn't just a bigger ASCII. It includes entire blocks of letter
variants β€” most notably the Mathematical Alphanumeric Symbols block
(U+1D400–U+1D7FF), which encodes bold, italic, script, fraktur, double-struck,
monospace, and more as distinct characters:

  • x β†’ 𝐱 (bold), π‘₯ (italic), 𝚑 (monospace)
  • A β†’ 𝔸 (double-struck), 𝔄 (fraktur)
  • 2 β†’ Β² (superscript, from a much older block)

Because these are real characters with their own codepoints, they survive
copy-paste into any plain-text field. That's the whole trick behind "font
generator" sites β€” no fonts are involved, just a codepoint lookup.

The catch: honest vs. fake conversion

There's a subtle quality problem most converters have. Coverage is uneven:
superscript has no lowercase b (Unicode simply never encoded one), italic
has no capital Q, and so on.

Many tools quietly paper over the gaps by borrowing lookalike characters
from unrelated scripts β€” a Greek letter here, a Cyrillic one there. It looks
fine until screen readers mangle it, search can't find it, or a font renders
it as tofu. A good converter instead:

  1. converts what has a real mapping,
  2. leaves the rest untouched,
  3. and tells you which characters stayed unchanged.

The tools I settled on

I got tired of hand-searching codepoint tables, so I now use
LiteralKit β€” a free collection of 50+ focused
Unicode tools. Three things make it work for me as a developer:

Everything runs locally in the browser. No accounts, no uploads β€” your
text never leaves the page. Paste, convert, copy, done in seconds.

Honest output. It never substitutes lookalike characters. Unsupported
characters pass through unchanged, and the page discloses its coverage up
front. For a notation tool, that honesty matters more than a big feature list.

One tool per page, one job per tool. No popups, no multi-step funnels.
A few I keep bookmarked:

The full set (Wingdings and runic translators, symbol pickers, a symbol
identifier, and more) lives in the tool directory.

Takeaway

Styled plain text is just Unicode arithmetic β€” but doing that arithmetic by
hand is a waste of your time. Know the trick exists, know that coverage has
honest gaps, and let a tool that respects those gaps do the mapping.

Top comments (0)