Built on advanced on-device AI and hardware acceleration to deliver professional-grade performance with uncompromising privacy.On-device AI — professional-grade, fully private.
Reverse Text Tool
Reverse text by character, word, line or sentence
- Never uploaded
- Emoji stay whole
- Seven modes
- Up to 25 MB
Drop a text file here
One file up to 25.0 MB. TXT, MD, LOG, CSV, SRT and ten more.
No text yet.
No text yet.
one two three becomes eerht owt eno.
What a reader sees. Emoji, flags, skin tones and accented letters stay whole.
Runs the mode within every line instead of across the whole document.
Used only in Split by delimiter mode.
The badge under the result says whether the text reads the same both ways.
Free: one document, up to 25.0 MB. Every mode and every option is included.
What this tool does
It turns text round, and it lets you say exactly what "round" means. Seven modes cover the reversals people actually want, from flipping every character to putting the last line first, and a separate setting decides what counts as a character in the first place. Everything runs on your device, not our servers, so a log file, a customer list or a draft you would not send to a website is safe here.
The seven modes
Each row shows what happens to the same short input, so the difference between the two that people mix up most - reversing the letters inside words, and reversing the order of the words - is visible rather than described.
| Mode | Input | Output |
|---|---|---|
| All characters | one two three | eerht owt eno |
| Letters in each word | one two three | eno owt eerht |
| Word order | one two three | three two one |
| Line order | first / second / third | third / second / first |
| Sentence order | One. Two. Three. | Three. Two. One. |
| Split by delimiter (,) | alpha,bravo,charlie | charlie,bravo,alpha |
| Mirror | hello | oʅʅǝɥ |
Reversing twice gets you back
Every mode except the delimiter one is its own undo: reverse the result again and you have the original, character for character, including the spacing and the line endings. That is not a convenience, it is the strongest correctness check a tool like this has, and it is the check most implementations fail the moment there is an emoji or a Windows line ending in the text. The Reverse again button beside the result sends the output straight back into the input so you can try it.
Why emoji, flags and accents break in other reversers
A string in a browser is stored as a list of UTF-16 code units, and the one-line reversal every tutorial teaches - split, reverse, join - reverses that list. For English that is fine. For everything else it produces output that looks like a bug report.
What actually goes wrong
Emoji with a skin tone
a thumbs-up with a skin tone is a base symbol followed by a modifier. Reversed one code unit at a time, both halves of both symbols are split and the result is unreadable rubbish. Reversed by code point, the modifier ends up in front of the symbol it was meant to modify, which renders as two separate emoji.
Families and other joined emoji
a family is several people joined by an invisible zero-width joiner. Naive reversal shatters it into broken halves; code-point reversal puts the members back in the wrong order, which is not the emoji anyone typed.
Flags
a flag is two regional indicator letters. Reverse them and you get a different country's flag, or no flag at all - a wrong answer that looks completely convincing on screen. This is the one worth pausing on, because nothing about the output says it is wrong.
Accented letters
an accented letter can be one character or a plain letter followed by a combining mark, and the two look identical. Reversing the second kind moves the accent onto whichever letter now sits in front of it.
Indic and Thai text
a syllable in Devanagari or Thai is several code points that render as one unit. Splitting them scrambles the syllables into shapes the script does not have.
Windows line endings
a CRLF is a carriage return followed by a line feed. Reversed, it becomes a line feed followed by a carriage return - which is not a line ending anywhere, and quietly corrupts every file that came off a Windows machine.
This tool reverses grapheme clusters, which is the Unicode standard's own definition of what a reader would call a character. All six cases above come out unchanged, and the tool's own test suite checks that against the browser's built-in segmenter across hundreds of thousands of randomly generated strings - including deliberately malformed ones.
Characters, code points and code units
The setting under the mode picker chooses which of the three definitions the reversal uses, and the counts under both text boxes show all three at once so the difference is never a surprise. A thumbs-up with a skin tone is one character, two code points and four code units.
- Characters (grapheme clusters) — the default, and the right answer almost always. It is what a person means by "character", what a text-message limit really counts, and the only one of the three that keeps emoji, flags and accents intact.
- Code points — one entry per Unicode scalar value. This is what Array.from and the spread operator give you in JavaScript, and it is what the better online reversers use. It keeps astral characters in one piece and still breaks flags, skin tones and combining marks.
- Code units — one entry per UTF-16 unit - what String.length counts and what split("") produces. It is offered deliberately, because "what does my buggy reversal actually output" is a real question, and this is the only place you can see the answer next to the correct one.
Switching between them re-runs the reversal immediately, so the three answers can be compared on your own text in a few seconds. That comparison is the reason the option exists.
Lines, words, sentences and delimiters
The four modes that reverse an ORDER rather than characters all follow one rule: the content moves and the separators do not. That single rule is what keeps indentation, blank lines and line endings exactly where they were.
- Line order — recognises Windows CRLF, classic Mac CR, Unix LF and the Unicode line and paragraph separators. Each line comes back with the ending it arrived with, a file that ended in a newline still ends in one, and a blank line in the middle stays a blank line rather than migrating to the top.
- Word order — runs of whitespace stay in their slots, so a double space between two words stays a double space in the same position, and leading indentation is still leading indentation. Tools that move the spacing along with the words turn an aligned column into a ragged one.
- Sentence order — uses real sentence detection rather than splitting on full stops, so "Dr. Smith went to the U.S.A. in 2020." is two sentences and not five. Decimals, initials and abbreviations are all handled.
- Split by delimiter — the delimiter is literal text, so a full stop means a full stop and a pipe means a pipe - no pattern syntax to escape. Multi-character delimiters work, and \t, \n and \\ are understood so a tab is typeable in a one-line box. If the delimiter does not occur in the text the tool says so instead of handing back the input as though it had done something.
The line-by-line option
Any mode except Line order can be applied within each line instead of across the whole document. Reversing all characters line by line turns every line backwards while keeping the lines in order, which is what most people actually want from a multi-line paste and what a whole-document reversal does not give them. It is switched off in Line order mode because reversing the lines within a single line does nothing, and a control that does nothing is worse than one that is not there.
Mirror and upside-down text
Mirror does two things, and doing only the first is the bug in most "flip text" generators: it reverses the text, then replaces each character with the glyph that looks like it has been rotated 180 degrees. Rotate without reversing and the result still reads backwards when you turn the screen over.
- Paired characters flip to their partners: an opening bracket becomes a closing one, because the reversal has already swapped which end they sit at.
- The table is its own inverse, so mirroring twice returns exactly what you started with.
- It covers the Latin alphabet, digits and common punctuation. If most of your text has no rotated form - Chinese, Japanese, Korean, Arabic - the tool says so rather than handing back text that has only been reversed.
- Two characters deliberately differ from the usual flip tables, which reach for a Hebrew and an Arabic glyph. Both are strong right-to-left characters, and a single one of them reorders the whole visual line it lands in.
When to use it
A reverser is a small tool with a surprising number of real jobs, and the mode you want differs for each.
- Reading a log newest-first — Line order, on a .log or .txt dropped straight onto the page. No command line, and it all runs on your device, not our servers.
- Testing text handling — reverse by code units, then by characters, and compare. If your own code produces the first, this is the tool that shows you what your users will see.
- Puzzles, riddles and games — All characters, with the palindrome badge under the result telling you whether the text reads the same both ways.
- Creative and social posts — Mirror, for text that reads correctly upside down, and Letters in each word for a readable-but-wrong effect.
- Reordering data — Split by delimiter for CSV values, path segments or any list joined by a character you can type.
- Language learning and teaching — Letters in each word with punctuation preserved, to demonstrate spelling without destroying the sentence around it.
Limits, speed and privacy
The free plan handles one document of up to 25 MB, with every mode and every option included - the plan limits scale, never capability. Pro raises the size to whatever your device can handle and lets you queue up to 20 documents and take the reversed set away as a single archive.
- Below 200,000 characters the result updates as you type. Above it, a button applies the change, so a large document never makes typing stutter.
- Reversing runs off the main thread, so the page stays responsive and long runs can be cancelled.
- Only the first 50,000 characters of a result are drawn on screen; Copy and Download always give you the whole thing.
- Text files are decoded from UTF-8, UTF-16 and Latin-1, with or without a byte-order mark. A file that is not text at all is refused with a reason rather than turned into replacement characters.
- Nothing is uploaded, and the tool keeps working with the network disconnected once the page has loaded.
25 MB reverses in about 0.4 seconds on a modern laptop, on your device, with the page still responsive throughout.
For longer workflows, pair this with the text splitter to break a large log into pieces first, the text sorter to order lines before flipping them, and the word counter to check length afterwards. Text splitter · Text sorter · Word counter
Frequently asked questions
How does the text reverser work?
Type, paste or drop a text file, pick a reverse mode, and the output updates as you type. Seven modes are available: reverse all characters, reverse the letters inside each word, reverse word order, reverse line order, reverse sentence order, reverse chunks split by a delimiter you choose, and mirror, which reverses and turns each character upside down. You can copy the result, download it as a text file, or send it back into the input to reverse it again.
Why do emoji and flags break in other text reversers?
Because most of them reverse the UTF-16 code units a string is stored as, not the characters a reader sees. A thumbs-up with a skin tone is four code units; reversed one at a time it comes out as broken symbols. A flag is two regional indicators; reversed naively, the flag of one country becomes the flag of another. An accented letter typed as a base plus a combining mark has the accent moved onto the wrong letter. This tool reverses grapheme clusters, the units the Unicode standard defines as characters, so all three survive.
What is the difference between characters, code points and code units?
They are three ways of counting the same text and they disagree exactly where it matters. A thumbs-up with a skin tone is one grapheme cluster, two code points and four UTF-16 code units. Grapheme clusters are what a person means by a character, and they are the default here. Code points are what Array.from gives you. Code units are what String.length and split("") give you, which is why so much software gets emoji wrong. All three counts are shown under the text, and you can reverse by any of them.
How is reverse words different from reverse word order?
Reverse words mirrors the letters inside each word while keeping every word in its original position, so "one two" becomes "eno owt". Reverse word order does the opposite: it keeps each word readable but flips their sequence, so "one two three" becomes "three two one". Runs of spaces stay where they were in both, so indentation and column alignment survive.
What do reverse lines and reverse by delimiter do?
Reverse lines flips the order of lines so the last line comes first, which is the quick way to read a log newest-first. It recognises Windows CRLF, classic Mac CR, Unix LF and the Unicode line and paragraph separators, and it puts each line back with the ending it arrived with. Reverse by delimiter splits your text on a string you type and flips the chunks, which is useful for CSV values and path segments. The delimiter box is literal, so a full stop means a full stop, and it understands the escapes for tab, newline and backslash.
Can I preserve punctuation when reversing words?
Yes. In Reverse words mode, turn on preserve punctuation and only the letters and digits move; commas, brackets and apostrophes stay where they were. It works on every alphabet, not just English, so Cyrillic, Greek, accented Latin and CJK text all reverse correctly. A separate line-by-line option applies whichever mode you picked to each line on its own.
What is mirror mode?
Mirror reverses the text and then replaces each character with the glyph that looks like it has been rotated 180 degrees, so the result reads correctly when the screen is turned upside down. It covers the Latin alphabet, digits and common punctuation; paired characters such as brackets flip to their partners rather than to lookalikes. If you paste a script the table does not cover, the tool says so instead of quietly handing back text that is only reversed.
Is my text uploaded anywhere?
No. Every reversal happens on your device and nothing leaves it - there is no server to send it to. That also means the tool keeps working with the network disconnected once the page has loaded, and that a document you would not paste into a website is safe to use here.
How much text can it handle?
Up to 25 MB per document on the free plan, one document at a time. Below 200,000 characters the output updates as you type; above that, a button applies the change so typing never stutters. Pro raises the limit to whatever your device can handle and lets you queue up to 20 documents and download the reversed set as one archive.
Which file types can I open?
Plain text and text-shaped data: .txt, .md, .log, .csv, .tsv, .srt, .vtt, .json, .xml, .yaml, .sql, .ini, .env and .rtf. UTF-8, UTF-16 and Latin-1 are all decoded, with or without a byte-order mark. Anything else is refused at the file picker with a link to the tool that converts it first, so you never wait for a spinner that ends in an error. Word documents and PDFs are not text files; use the converters linked in the refusal.
from 180 ratings
Rate this tool
Tap a star — it takes a second