Reverse Text Generator
Type or paste any text and get it reversed three ways at once — characters, word order, and letters within each word. Click a card to copy.
Type or paste text above — three reversed versions appear below. Click any card to copy its result.
Three ways to reverse text, explained
"Reverse text" can mean three different things depending on what you're trying to do, and this generator computes all three at once so you never have to guess which one you need. Reversed characters flips the entire string back-to-front, one code point at a time — spaces, punctuation and letters all swap ends, which is the classic "backwards text" or "mirror text" novelty effect. Reversed word order leaves every word spelled normally but puts the words themselves in the opposite order, turning a sentence around while keeping it legible. Reversed letters in each word is the middle ground: the words stay in their original positions, but the letters inside each one are flipped — handy for word games, spelling puzzles, or checking whether a name reads oddly backwards.
How to use it
- Type or paste any text into the box — a word, a sentence, a username, or several lines.
- All three results update as you type; nothing is calculated on a server, so private or sensitive text never leaves your browser.
- Click any result card to copy just that version to your clipboard — the card briefly confirms the copy.
- Leave "Save my text in this browser" ticked to have the box repopulate next time you open the page, or untick it to keep the session private and unsaved.
Worked examples
Hello worldReversed characters:
dlrow olleH · Reversed word order: world Hello · Reversed letters in each word: olleH dlrow
Hello world fooReversed characters:
oof dlrow olleH · Reversed word order: foo world Hello · Reversed letters in each word: olleH dlrow oof
never odd or evenReversed characters:
neve ro ddo reven — visually close to the original because the phrase is a well-known palindrome once spacing is ignored, a quick way to eyeball candidate palindromes before checking them character by character.
Why the reversal is Unicode-safe
A naive way to reverse a string in JavaScript is to split it into individual UTF-16 code units, reverse the array, and join it back together. That works fine for plain English letters, but many emoji, mathematical symbols and rarer CJK characters are stored as a pair of two UTF-16 code units called a "surrogate pair." Reversing those pairs individually splits them apart and produces broken, invalid-looking characters instead of the original glyph. This generator uses Array.from(text) for every reversal, which iterates by full Unicode code point rather than raw code unit, so surrogate-pair characters — including the vast majority of emoji — stay intact through the reversal. The one remaining edge case is compound emoji built from several code points glued together with a zero-width joiner, such as family emoji or certain flags; those are still technically multiple characters, so reversing them can visually separate the parts.
Common uses
- Novelty captions and bios: reversed characters make a quick "read this backwards" effect for social posts, birthday messages, or puzzles.
- Word games and spelling practice: reversed letters in each word is a simple way to generate backwards-spelling flashcards or riddles without changing word order.
- Sentence-order wordplay: reversed word order is useful for Yoda-style phrasing experiments or testing how a headline reads in reverse.
- Palindrome sanity checks: comparing the reversed-characters output to the original is a fast first pass before running a stricter case- and space-insensitive palindrome test.
Mistakes worth avoiding
- Confusing sequence reversal with mirrored glyphs: this tool reverses the order of characters — it does not flip each letter's shape upside down. True "upside-down text" generators substitute each letter for a different Unicode lookalike symbol, which is a separate technique.
- Expecting word order reversal to preserve exact spacing: reversed word order joins words with a single space, so multiple spaces, tabs or line breaks between words in the original text are not preserved in that mode (reversed characters and reversed letters in each word do preserve the original spacing).
- Assuming every emoji survives perfectly: single-codepoint emoji reverse cleanly, but multi-part compound emoji joined with a zero-width joiner can visually split apart — see the FAQ for details.
Sources & further reading
- Unicode Standard Annex #29 — defines grapheme cluster boundaries, why emoji and accents must stay grouped when reversing
- Unicode Emoji ZWJ Sequences — the joiner-based compound emoji that can split apart on naive reversal
- MDN Web Docs: String — how JavaScript indexes UTF-16 code units and iterates code points
Frequently asked questions
What does this reverse text generator do, and what do the three modes mean?
This tool takes whatever you type or paste and reverses it three different ways at once. Reversed characters flips the entire string front-to-back, including spaces and punctuation — so "Hello world" becomes "dlrow olleH". Reversed word order keeps every word spelled normally but puts them in the opposite order — "Hello world" becomes "world Hello". Reversed letters in each word keeps the words in their original order but flips the letters inside each one — "Hello world" becomes "olleH dlrow". Click any of the three result cards to copy that version.
How do I create backwards or mirror-looking text for social media?
Type your caption or username into the box and use the Reversed characters card — that's the classic "backwards text" or "mirror text" effect people share as a novelty caption, bio trick, or puzzle. Keep in mind this reverses the sequence of the letters themselves; it does not flip each letter's shape upside-down like some "upside-down text" generators that swap in visually similar Unicode lookalike characters. True mirrored glyphs — letters that look flipped — require substituting each character for a different symbol, which is a separate trick from sequence reversal.
Does reversing text break emoji, accented letters, or other special characters?
This generator reverses text by Unicode code point using JavaScript's Array.from, not by raw UTF-16 code unit. That matters because many emoji and rarer characters are stored as a "surrogate pair" of two code units — reversing those naively, with a plain character-by-character loop, would split the pair and turn the emoji into broken symbols. Array.from keeps each code point intact, so a single emoji like 😀 or an accented letter like é reverses cleanly. The one exception is compound emoji built from several code points joined with a zero-width joiner, such as family emoji or some flags — those can still separate into their individual parts when reversed, because they are technically multiple characters glued together for display.
What's the difference between reversing word order and reversing the letters in each word?
They act on different parts of your text. Reversing word order treats each word as a single unit and only changes the sequence they appear in — great for turning a sentence backwards while keeping every word readable. Reversing letters in each word does the opposite: it keeps every word in its original position but flips the letters inside it back-to-front, which is useful for word games, puzzles, or testing how a name looks spelled backwards. For example, "Hello world foo" becomes "foo world Hello" with word order reversed, but "olleH dlrow oof" with letters reversed inside each word.
Is my text sent to a server?
No. This reverse text generator runs entirely in your browser — nothing you type or paste is uploaded, logged, or shared with any server. Your most recent input is optionally saved to this browser's local storage so it's still here next time you open the page; untick "Save my text in this browser" to keep it private to the current session, and clearing the box removes any stored copy immediately.