Reverse Text
Flip text at three levels: reverse the characters, reverse the word order within each line, or reverse the order of the lines themselves. Character reversal is grapheme-aware, so emoji and accents survive intact.
How Reverse Text works
Paste your text.
Choose characters, words, or lines.
Read the reversed output beside the original.
Copy the result.
When to use Reverse Text
- Flipping the order of a stack of lines so the newest entry sits at the top, or the oldest does.
- Reversing the word order within each line to test a layout or produce a quick word-play effect.
- Mirroring a string character by character while keeping emoji and accented letters intact.
- Inspecting how a string reads backwards when you are debugging a palindrome check or an anagram puzzle.
- Reversing a batch of log lines so the earliest event reads first.
Examples
Input
first second third
Output
third second first
Line mode flips the order the lines appear in while leaving the text of each line untouched.
Input
Hello 👋
Output
👋 olleH
Characters flip end to end, but the waving-hand emoji stays whole, because reversal walks the string by grapheme cluster rather than by raw code unit.
How Reverse Text works under the hood
The tool offers three independent modes, and exactly one is applied at a time. Character mode reverses the whole string end to end. Word mode keeps each word intact but reverses their order within a line. Line mode keeps every line intact but reverses the order the lines appear in. Which one you want depends on whether the unit you care about is the character, the word, or the line.
Character reversal is grapheme-aware. A naive reversal that walks a string by code unit will split a multi-code-point emoji — a family, a skin-toned hand — or a combined accent into fragments that render as broken glyphs. Instead, the text is segmented into grapheme clusters, the clusters are reversed, and each emoji or accented letter is flipped as a single unit, so “Hello 👋” becomes “👋 olleH” with the emoji intact.
Word mode splits each line on runs of whitespace while preserving those runs, reverses the resulting pieces, and rejoins them, so the spacing is carried along rather than collapsed into single spaces. Each line is handled on its own and line breaks are preserved, so a multi-line block keeps its structure while the words within each line flip. Line mode simply reverses the sequence of lines after normalising line endings, leaving every line’s text exactly as it was.
Everything runs in your browser on your own device, with nothing sent anywhere. Character and line reversal are their own inverses, so applying the same mode twice returns the original text; word reversal round-trips for ordinary spacing, though unusual runs of whitespace may not come back identically.
Common mistakes
- Reaching for reverse text to mirror Arabic or Hebrew. The tool reverses the underlying sequence of characters, a mechanical operation independent of display direction; for right-to-left scripts the browser already handles visual ordering, so a raw reversal will not read as you expect. This is an honest limitation, not a bug.
- Expecting character mode to also flip word or line order. Only one mode applies at a time — character reversal flips the entire string as one sequence, which is different from reversing words or lines.
- Assuming word reversal will tidy your spacing. It preserves and carries the original whitespace runs rather than normalising them, so irregular spacing is reproduced, not cleaned up — use Whitespace Cleaner for that.
- Being surprised that emoji survive here when they break elsewhere. Other tools often reverse by code unit and shatter multi-part emoji; this one works on grapheme clusters, which is why the results differ.