Reverse Text
Flip text three different ways: mirror the characters within each line, reverse the order of words, or turn a list upside down by reversing its lines. The character mode is built on grapheme segmentation, which is a fancy way of saying your emoji, flags, and accented letters come out the other side in one piece — something most reversers on the web still get wrong.
Use this without the search next time. Prathom Workbench puts Prathom's tools in your toolbar.
Add to Chrome — freeWhat it does
- Three modes — characters, word order, line order
- Grapheme-aware, so emoji and accents never shatter
- Works per line, keeping multi-line structure intact
- Nothing you type is stored, even briefly
How to use Reverse Text
- 1
Paste or type the text
Single words, sentences, or whole lists — each line is handled on its own, so multi-line input keeps its shape.
- 2
Pick the mode
Characters mirrors each line back to front. Word order keeps every word readable but reverses their sequence. Line order flips the list top to bottom without touching the lines themselves.
- 3
Copy the result
The reversed text goes wherever you need it — a puzzle, a test fixture, a caption. Running the same mode twice restores the original exactly.
How it works
The three modes are three different splits of the same text. Line-order mode splits at line breaks and reverses the resulting array — the cheapest operation here, and the only one that touches document structure. Word-order mode splits each line at whitespace runs, reverses the words, and rejoins them with single spaces.
Character mode is where the care goes. The text is segmented into grapheme
clusters — the units a reader perceives as one character — using the same
segmenter engine (Intl.Segmenter) that runs this reversal on this site's
own server. A cluster can be one code point, a letter plus
combining accents, or an emoji sequence a dozen code points long; whatever
its internal size, it moves through the reversal as one atom. Reversing at
any lower level (storage units or raw code points) produces the classic
failure modes: broken surrogate halves, accents that jump to the wrong
letter, families that dissolve into separate people.
Every mode is its own inverse: apply it twice and you get your input back, byte for byte in line and word mode, grapheme for grapheme in character mode.
Why "reverse" needs a definition at all
Ask three people to reverse "New Delhi to Mumbai" and you may get three answers: "iabmuM ot ihleD weN", "Mumbai to Delhi New", or — if they read it as a list — the same text unchanged, because there is only one line. None of them is wrong; they reversed different units. That is why the mode selector exists instead of a single Reverse button, and why each mode states its unit plainly rather than guessing what you meant.
When you'd use this
Verifying a palindrome candidate the honest way, raw reversal first. Building right-to-left test strings for a UI. Un-flipping a log export that arrived newest-line-first. Hiding a quiz answer in plain sight. Making a caption or username that reads backwards on purpose.
Emoji and accents are where naive reversal breaks
Reversing a string sounds like the simplest operation there is, and it is the standard example of why text is harder than it looks.
The problem is that a character and a code unit are not the same thing. JavaScript stores text as UTF-16, and anything outside the basic range — most emoji, many CJK extensions, mathematical symbols — is stored as two units called a surrogate pair. Reverse the units and the pair comes out backwards, which is not a valid character at all. The result renders as two replacement boxes and the original is unrecoverable from the output.
Combining marks fail differently. é can be one character or two: the letter
e followed by a combining acute accent. Reversed naively, the accent lands
before the e and attaches itself to whatever now precedes it, so the mark
migrates to a neighboring letter. The text stays valid and becomes wrong.
The worst case is the emoji built from several code points joined together — a family, a flag, a profession with a skin tone. Those are sequences of five or six units held together by joiners, and reversing the sequence scatters them into unrelated symbols.
This tool reverses by character rather than by code unit, which handles the surrogate pairs correctly. Grapheme clusters — the combining marks and joined sequences — are the harder case, and the honest advice is to check the output when the input contains them rather than assuming.
Reversing is not obscuring
Backwards text is a fine way to keep an answer from being read accidentally. It is not a way to keep anything from being read deliberately.
There is no key and no secret. Anyone who recognizes the text as reversed can undo it in one step, and recognizing it takes no effort — reversed English keeps its word lengths, its punctuation and its spacing, so it looks like language that has been flipped rather than like noise. Search engines and moderation systems have handled it for years.
So use it for the quiz answer under the question, the spoiler in a group chat, the puzzle. Never use it for anything where being read would actually matter, and be especially wary of the idea that reversing an email address or a phone number hides it from scrapers. It does not, and it never has.
Examples
Checking a near-palindrome
Reversed character by character, the sentence is almost — but not quite — itself, which is the honest answer: it is a palindrome only if you ignore spaces and capitalisation. Seeing the raw reversal makes it obvious where the mismatch sits, which is exactly what palindrome hunters use this mode for.
Emoji survive the flip
The heart is actually two code points — a heart plus an invisible styling marker. A naive reverser separates them, leaving a broken character and a stray mark in the middle of the text. Grapheme segmentation treats the pair as the single symbol a reader sees, so it travels through the reversal whole.
Frequently asked questions
Why do emoji shatter in some other text reversers?
Because those tools reverse the string's internal storage units rather than its visible characters. An emoji can span two storage units, carry an invisible styling selector, or be a whole family glued together with zero-width joiners. Reversing at the wrong layer scrambles those pieces into lone surrogates and orphaned marks. This tool segments the text into reader-visible characters first, then reverses those.
Does character mode reverse my lines too?
No — each line is mirrored in place, and the lines stay in their original order. That separation is deliberate: mirroring characters and flipping the document are different questions, and bundling them would make the common case (reversing one line of text) do something surprising to multi-line input. Use line-order mode when you want the document flipped, or run both modes in sequence for a full mirror.
What is reversing text actually good for?
More than party tricks, though it is good at those. Palindrome checking is the classic use. Testers reverse strings to build fixtures that catch right-to-left layout bugs. Puzzle writers hide answers backwards. Line-order reversal un-reverses chat logs and chronological exports that arrived newest-first. And word-order reversal is a quick scramble for memorization practice.
Will accented letters like é come out correctly?
Yes, including the tricky decomposed form where é is stored as a plain e followed by a separate combining accent. Reversing that naively moves the accent onto the neighboring letter — "café" comes back as "éfac" with the accent floating over the wrong character. Grapheme segmentation keeps each base letter and its marks welded together through the reversal.
Further reading
- Why Emoji Break When You Reverse TextTake "I ❤️ Delhi", reverse it in almost any free tool, and the heart comes back broken — often as a stray mark floating next to a replacement box. The bug is not in the emoji. It is that the word "character" means three incompatible things in programming, and the obvious one is the wrong one.
- Windows Line Endings Cost 1.8% on Disk and Three Bytes CompressedEvery line of a Windows text file ends with two characters where a Unix one ends with one. It is the oldest formatting difference in computing and it is worth a measurement, because the size argument turns out to be the least important thing about it.
- Two Words That Look Identical and Are Not the Same TextA search that finds nothing, a duplicate that will not deduplicate, a login that fails with the right password. Often the cause is that two pieces of text that look exactly the same on screen are different sequences of bytes — and Unicode allows both spellings on purpose. Here is what is happening and the one-line fix.