How this instrument works
Hold a piece of paper up to a mirror and two things happen at once: the letters read in reverse order (the last letter is now on the left), and each individual letter flips left-to-right rather than top-to-bottom. This instrument recreates both effects. It first reverses your entire text, then walks through the reversed string and swaps specific letters for a curated Unicode character that looks like their horizontal mirror image — for example, a mirror swaps b and d (their stems and bowls trade sides but stay on the same baseline), and separately swaps p and q the same way.
This is deliberately a different transformation from the "upside-down text" generators you may have seen elsewhere, which rotate each letter 180 degrees instead of mirroring it. Rotation and mirroring look similar for a couple of letters but diverge for most: a genuine left-right mirror swaps b<->d and p<->q, while a 180-degree rotation instead swaps b<->q and d<->p, because rotating flips a letter both left-right and top-to-bottom at once. If you've used a flip-text tool that turns text upside down for a novelty social media post, this is a related but distinct effect — true mirror writing, not rotation.
There's no official Unicode standard for a complete "mirror alphabet," so this instrument uses a curated table covering the Latin letters that have a genuinely convincing horizontal-mirror lookalike available as an existing Unicode character (b, d, p, q, c, s, z, e, g, and r). Letters without a good mirror lookalike in Unicode — most of the alphabet — are left as-is rather than replaced with something that only loosely resembles a mirror image, so the result reads as a mix of flipped and unflipped letters, still reversed in order but only partly re-shaped.
- Type or paste the text you want mirrored into the Text field.
- Read Mirror text for the result: your text reversed end to end, with select letters swapped for mirror lookalikes.
- Letters b, d, p, q, c, s, z, e, g, and r (in either case) get a genuine mirror substitute; other letters keep their normal shape.
- Spaces and punctuation move with the reversed order but aren't reshaped, since they don't have a meaningful mirror form.
- For an upside-down (180-degree rotated) effect instead of a true left-right mirror, use a rotation-based flip-text tool — the substitute letters are different.
Worked example — mirroring "dog" and "SolveTutor"
Type "dog." This 3-letter word reverses first, so position 1 (d) moves to position 3, position 2 (o) stays put in the middle, and position 3 (g) moves to position 1, giving g-o-d. Then substitute mirror lookalikes letter by letter: g has a table entry and becomes ϱ, o has no table entry so it stays o, and d has a table entry and becomes b. "dog" mirrors to "ϱob."
Longer words mix flipped and unflipped letters. Reverse all 10 letters of "SolveTutor" and each position swaps with its mirror position: position 1 (S) moves to position 10, position 2 (o) moves to position 9, position 3 (l) moves to position 8, position 4 (v) moves to position 7, and position 5 (e) moves to position 6 (and back), giving "rotuTevloS." Walking through the reversed string: r becomes ɿ; o, t, u and the capital T have no table entries and stay as-is; e becomes ɘ; v, l and o stay; and the capital S, now at the end, becomes Ƨ. "SolveTutor" mirrors to "ɿotuTɘvloƧ" — seven of the ten letters keep their normal shape, since letters like o, t, u, v and l aren't in the substitution table.
Punctuation and spacing reverse in position but never get reshaped. "Hello, World!" is 13 characters total, including the comma, space, and exclamation point, and the whole string reverses end to end to "!dlroW ,olleH," then only the letters with table entries get swapped (the two d's, the r, and the e), giving a final result of "!blɿoW ,ollɘH."
Questions
How is mirror text different from upside-down text?
A true mirror only flips left-to-right, the way text looks reflected in a physical mirror, so it swaps letters like b<->d and p<->q (same baseline, sides traded). Upside-down text generators instead rotate each letter 180 degrees, which flips both left-right and top-to-bottom at once, so they swap b<->q and d<->p instead — a different pairing that produces genuinely different substitute characters. This tool does the mirror version specifically; it's a different transformation from a rotation-based flip-text generator, not just a re-skin of the same idea.
Why do some letters stay the same instead of getting mirrored?
Because there's no widely recognized Unicode character that convincingly looks like that letter's horizontal mirror image. Rather than substitute a shape that only loosely resembles a real mirror flip, this instrument leaves those letters unchanged and only swaps the ones with a genuinely good lookalike available (b, d, p, q, c, s, z, e, g, and r). The result is a partial, honest mirror effect rather than a complete but inaccurate one.
Why does the text also reverse in order, not just flip each letter?
Because that's what actually happens when you hold text up to a mirror — the last character in your original text ends up on the left, and the first character ends up on the right, in addition to each letter's shape flipping. Reversing the character order first and then substituting mirror lookalikes second reproduces both effects together, matching how a real mirror reflection reads.
Does capitalization carry through to the mirrored letters?
Yes — the substitution table is applied per case, so a lowercase letter gets its lowercase mirror substitute and an uppercase letter gets an uppercase one, matching how the original letter was typed. Spaces, digits, and punctuation are never reshaped since they don't have a meaningful mirror form; they just move to their reversed position along with everything else.
Will the mirrored text look the same in every font or app?
Mostly, but not guaranteed. This tool outputs real Unicode characters (drawn from scripts like Greek and IPA extensions that happen to resemble mirrored Latin letters), and most modern fonts render them, but some very old or minimal fonts might be missing a specific character and show a fallback box instead. If a mirrored result looks broken, try pasting it somewhere with broader font support, like a modern browser or word processor.