Free upside-down text generator for messages and captions

Turn a greeting, caption, or puzzle clue upside down. Type or paste your text, then copy the flipped characters into your message or design.

Loading the tool…

What is upside-down text?

Upside-down text is ordinary text replaced with Unicode characters that look like rotated letters. The character order is reversed too, creating the effect of turning a phrase through 180 degrees. For example, hello becomes oןןǝɥ.

The result is still selectable, copyable text. You do not need to install a special font or send an image, although the receiving app needs a font that can display the chosen characters. Some replacements are close matches; others are only visual approximations.

A small twist for messages, captions, and puzzles

A short flipped phrase can add a surprise to a greeting, give a photo caption a playful finish, or make a clue take an extra moment to read. It also works as sample text when exploring how a design handles unusual characters.

Keep the effect brief. A few upside-down words are easier to recognize than an entire paragraph, and mixing them with normal text gives readers some context. For example, keep a birthday message readable and flip just the closing greeting, or place a flipped answer beneath a riddle.

Upside-down text examples

These examples use this converter’s actual character substitutions. Letter case matters, and punctuation moves with the rest of the phrase.

Original textUpside-down resultWhat to notice
Hello!¡oןןǝHA short greeting, with the exclamation mark moved to the start.
hello worldpןɹoʍ oןןǝɥBoth words and their letters change order.
Good morning!¡ƃuıuɹoɯ poo⅁Uppercase and lowercase letters use different mappings.
(hello)(oןןǝɥ)The brackets swap as the word flips.
12345ϛㄣƐᄅƖDigits become visual lookalikes, not a usable number.

Multiple lines turn over too

The converter reverses the whole input, including line order. Enter:

top
bottom

The result is:

ɯoʇʇoq
doʇ

Blank lines and spaces are retained as the text changes position. Emoji sequences stay together; an emoji is moved, not visually rotated.

How the text is flipped

Each supported character is replaced with a partner: a becomes ɐ, b becomes q, and 6 becomes 9. The converter then reverses the sequence. Characters with no mapped partner keep their original form as they move.

This differs from simply writing backwards. Reversing hello alone gives olleh; replacing its letters as well gives oןןǝɥ. It also differs from rotating a text box in a graphics editor, which rotates the actual letter shapes without changing their character identities.

The mappings work in both directions. Inverse places the result back into Input and applies the conversion again, letting you restore ordinary mapped text. For reliable recovery, use the unchanged output: another app may alter quotation marks, spacing, or Unicode characters when you paste it.

Upside-down character reference

Choose a tab to inspect the characters used by this tool. The code point identifies the replacement precisely, even when fonts draw it differently. Unicode names describe the actual characters borrowed for the effect; they do not imply that Unicode defines a complete upside-down alphabet.

Lowercase letters

All 26 basic Latin lowercase letters are listed below. Letters such as o, s, x, and z stay unchanged; pairs such as b/q swap. The lowercase l uses Hebrew final nun (ן), a visual approximation whose appearance and direction can vary in context.

InputFlipped characterOutput code pointCharacter used
aɐU+0250Latin small letter turned a.
bqU+0071Latin small letter q.
cɔU+0254Latin small letter open o.
dpU+0070Latin small letter p.
eǝU+01DDLatin small letter turned e.
fɟU+025FLatin small letter dotless j with stroke.
gƃU+0183Latin small letter b with topbar.
hɥU+0265Latin small letter turned h.
iıU+0131Latin small letter dotless i.
jɾU+027ELatin small letter r with fishhook.
kʞU+029ELatin small letter turned k.
lןU+05DFHebrew letter final nun.
mɯU+026FLatin small letter turned m.
nuU+0075Latin small letter u.
ooU+006FLatin small letter o (unchanged).
pdU+0064Latin small letter d.
qbU+0062Latin small letter b.
rɹU+0279Latin small letter turned r.
ssU+0073Latin small letter s (unchanged).
tʇU+0287Latin small letter turned t.
unU+006ELatin small letter n.
vʌU+028CLatin small letter turned v.
wʍU+028DLatin small letter turned w.
xxU+0078Latin small letter x (unchanged).
yʎU+028ELatin small letter turned y.
zzU+007ALatin small letter z (unchanged).

Uppercase letters

Capital letters have their own mappings. Several use mathematical or other-script characters, so their shapes may be less convincing in some fonts. For example, A uses the for-all symbol and B uses a Deseret letter.

InputFlipped characterOutput code pointCharacter used
A∀U+2200For all.
B𐐒U+10412Deseret capital letter bee.
CƆU+0186Latin capital letter open o.
D◖U+25D6Left half black circle.
EƎU+018ELatin capital letter reversed e.
FℲU+2132Turned capital f.
G⅁U+2141Turned sans-serif capital g.
HHU+0048Latin capital letter h (unchanged).
IIU+0049Latin capital letter i (unchanged).
JſU+017FLatin small letter long s.
K⋊U+22CARight normal factor semidirect product.
L˥U+02E5Modifier letter extra-high tone bar.
MWU+0057Latin capital letter w.
NNU+004ELatin capital letter n (unchanged).
OOU+004FLatin capital letter o (unchanged).
PԀU+0500Cyrillic capital letter komi de.
QΌU+038CGreek capital letter omicron with tonos.
RᴚU+1D1ALatin letter small capital turned r.
SSU+0053Latin capital letter s (unchanged).
T⊥U+22A5Up tack.
U∩U+2229Intersection.
VΛU+039BGreek capital letter lamda.
WMU+004DLatin capital letter m.
XXU+0058Latin capital letter x (unchanged).
Y⅄U+2144Turned sans-serif capital y.
ZZU+005ALatin capital letter z (unchanged).

Numbers and digits

The converter handles each digit separately and reverses their order. 6 and 9 swap; 0 and 8 retain their form. Other replacements borrow letter shapes. Use these for decoration, not calculations, dates, or values someone needs to enter accurately.

InputFlipped characterOutput code pointCharacter used
00U+0030Digit zero (unchanged).
1ƖU+0196Latin capital letter iota.
2ᄅU+1105Hangul choseong rieul.
3ƐU+0190Latin capital letter open e.
4ㄣU+3123Bopomofo letter en.
5ϛU+03DBGreek small letter stigma.
69U+0039Digit nine.
7ㄥU+3125Bopomofo letter eng.
88U+0038Digit eight (unchanged).
96U+0036Digit six.

Punctuation and symbols

Each listed replacement also maps back to its input character. Brackets therefore swap partners, while punctuation such as ? and ! uses an inverted counterpart. The straight apostrophe pairs with comma; the backtick stays unchanged so these pairs remain reversible.

InputFlipped characterOutput code pointCharacter used
&⅋U+214BTurned ampersand.
.˙U+02D9Dot above.
,'U+0027Apostrophe.
',U+002CComma.
"„U+201EDouble low-9 quotation mark.
[]U+005DRight square bracket.
][U+005BLeft square bracket.
()U+0029Right parenthesis.
)(U+0028Left parenthesis.
{}U+007DRight curly bracket.
}{U+007BLeft curly bracket.
?¿U+00BFInverted question mark.
!¡U+00A1Inverted exclamation mark.
<>U+003EGreater-than sign.
><U+003CLess-than sign.
_‾U+203EOverline.
\/U+002FSolidus.
/\U+005CReverse solidus.
;؛U+061BArabic semicolon.
‿⁀U+2040Character tie.
⁅⁆U+2046Right square bracket with quill.
∴∵U+2235Because.

Emoji, accents, spaces, and unmapped characters

The tool groups text into complete user-perceived characters before reversing it. This prevents a joined emoji or a letter with a combining accent from being split into its individual pieces. See Unicode’s text segmentation reference for the underlying grapheme-cluster rules.

Input or typeWhat happensExample or detail
Emoji such as 🙂Moves as a whole; its picture does not rotate.hi 🙂 becomes 🙂 ıɥ.
Joined emoji such as 👩‍💻The joined sequence stays together.The person and laptop are not reversed separately.
Accented letters such as éRemain unchanged when no whole-character mapping exists.café becomes éɟɐɔ; the accent is retained.
A letter plus a combining accentThe full cluster moves together, without substituting its base letter alone.An e followed by U+0301 stays one accented unit.
Spaces and blank linesAre preserved and moved with the reversed text.The last input line becomes the first output line.
Backtick (`)Remains unchanged.Unlike the legacy table, it does not share comma’s mapping.
Other unmapped symbols, such as @, #, or +Retain their original character.They still change position within the phrase.
Other writing systemsUnmapped characters stay unchanged, but their order reverses.This is not a language-aware rotation or translation.

Getting a readable result when you paste

Start with a short phrase and check it in the destination app. A character that looks right here may appear with a different shape, spacing, or a missing-glyph box elsewhere. If a particular letter looks awkward, try a different word or letter case.

Some profile and username fields restrict which characters they accept. Mixed writing directions can also affect the display because the substitutions include characters from several scripts. The copied result carries characters, not this page’s font or layout.

Keep names, links, instructions, and other essential information in ordinary text. Screen readers may announce substituted characters by their own names rather than read the intended words. Flipped text is a visual effect, not encryption, and converting a predictable password does not make it a strong one.

How to use this tool

  1. Type or paste a phrase into Input. The Upside-down text field updates as you type. Try Hello! to produce ¡oןןǝH.
  2. Copy the result. Use Copy result beside the output, then paste it into your message or caption. If copying is unavailable, select and copy the output manually.
  3. Check the pasted appearance. Fonts and character support vary between apps. Short phrases are usually easiest to read.
  4. Flip it back or start again. Inverse copies the result into Input and converts it again. Clear beside Input empties both fields.

Multiple lines reverse order too. Unmapped characters retain their form, and emoji sequences stay together.

Your tool data stays in your browser

This tool processes your data on your device. The text, files, or passwords you enter and the results it creates are not sent to our servers or any other server.

Page and asset requests still occur. Production pages also load Google Tag Manager and AdSense advertising; tool code does not send inputs or results to analytics or ads. See our privacy policy.

To inspect requests while using the tool, open your browser's developer tools and select Network. Try it with sample data.

Read How to check website network requests in Chrome, Firefox, Edge, and Safari.

Learn more and references

Premium is coming soon

An optional premium subscription to remove ads is planned. Subscriptions are not available yet.

You can keep using our free tools without an account.