Paste your text
Add any block of text, including emoji and accented characters.
Reverse characters, words, or lines in any text. Unicode-aware, so emoji and accented characters stay intact, and everything runs in your browser.
Three simple steps, with your content kept on your device.
Add any block of text, including emoji and accented characters.
Reverse the whole text, the order of lines, or the words in each line.
Use the result immediately or save it as a .txt file.
Fast, focused, and made to be clear on every screen.
Reverse characters, line order, or word order with one click.
Emoji and surrogate pairs are reversed as whole characters, not broken halves.
Your text never leaves the browser tab.
Paste your content into the input, pick a mode, and the result appears immediately. To reverse text character by character, leave the mode on Characters — "Hello world" becomes "dlrow olleH". The counters below the result show input and output characters and lines so you can confirm nothing was dropped.
The output can be copied to the clipboard or downloaded as a .txt file, which is handy when the reversed text is an intermediate step rather than the final answer.
There is nothing to install and no account to create. The transformation runs in JavaScript inside the current tab, so it works offline once the page has loaded.
Characters reverses the entire string from end to start, including spaces and punctuation. This is the mode people mean by reverse text, and it is what produces mirror-style output.
Lines reverses the order of rows while leaving each row's text untouched. Use it to flip a chronological list so the newest entry appears first, or to invert any ranked list. This is the mode to reach for when you want to reverse lines rather than letters.
Words reverses the order of words inside every row while keeping the rows themselves in place. Reverse words is useful for language exercises, for checking word-order assumptions in a parser, and for generating test strings.
Naive reversal breaks modern text. Many emoji, and every character outside the Basic Multilingual Plane, are stored as surrogate pairs — two code units that only mean something together. Reversing code unit by code unit splits those pairs and produces replacement squares instead of characters.
This tool iterates over whole code points rather than raw code units, so emoji, CJK characters, and accented Latin letters survive reversal intact. A string of emoji reversed here comes back as the same emoji in the opposite order, not as broken halves.
This is the main practical difference between a browser text reverser and a one-line script: correct Unicode handling is easy to get wrong and immediately visible when it fails.
Testing is the most common reason. Reversed strings are excellent test fixtures for input validation, sorting logic, and rendering, because they contain the same characters in an order nothing will accidentally match.
Palindrome checking is another: reverse a phrase and compare it to the original to see whether it reads the same both ways. Puzzle setters and word-game players use the same trick.
Reversed line order solves a very practical problem too — log files and exported histories are often written oldest-first, and flipping them puts the most recent entry at the top where you actually want it.
The tool enforces a byte limit and reports it clearly if your input exceeds it, so a huge paste fails with a readable message rather than freezing the tab. For anything within the limit, reversal is effectively instant because it is a single pass over the text.
Because processing is local, the size of your input has no bearing on privacy. Confidential drafts, customer data, and internal logs can all be reversed without leaving the device, which is not true of server-based alternatives.
Reversal often pairs with other transformations. The Text Cleaner strips extra spaces and blank lines first, so reversal operates on tidy input rather than noise.
The Number Formatter handles numeric strings where digit grouping matters, and the Slug Generator converts a cleaned line into a URL-safe identifier.
All of these run entirely in your browser, so you can chain several transformations together without any of the intermediate text being uploaded.
It reverses the entire text character by character, so "Hello world" becomes "dlrow olleH". Emoji are kept intact as single units.
Characters reverses the whole string, lines reverses the order of rows while keeping each row intact, and words reverses the order of words inside every row while keeping the row order.
No. All reversing happens locally in your browser and nothing is uploaded.