Reverse Text
Reverse text four ways — by characters, word order, the letters inside each word, or line order. Works with emoji and any language.
How to use
- Choose what to reverse: characters, word order, letters in each word, or line order.
- Type or paste your text.
- Copy the reversed result from the output box.
About this tool
ShowHide
Four ways to run text backwards: whole characters, the order of words, the letters inside each word while the words stay put, and the order of lines. Everything happens as you type, with no request leaving the page.
Character mode splits on grapheme clusters through Intl.Segmenter, which is the difference between a reversal that survives and one that shreds the input. Take 👨👩👧👦 abc — 15 UTF-16 code units, 11 code points, 5 graphemes. This tool returns cba 👨👩👧👦. Reversing code points instead rebuilds the family the other way round, and reversing code units emits lone surrogates, the mojibake you see when a naive split('').reverse() meets an emoji. The same holds for flags: 🇰🇷🇯🇵 is four regional indicators and two graphemes, so this tool gives 🇯🇵🇰🇷 while a code-point reversal recombines the halves into two completely different flags. A skin-tone modifier detaches the same way, and an e followed by a combining acute lands its accent on the neighbouring letter.
Word mode trims each line and collapses runs of whitespace, so it normalises spacing as it reverses. Letters-in-word mode matches non-space runs, which means punctuation travels with the word it is stuck to: Hello, World! comes back as ,olleH !dlroW, not olleH dlroW. And a caveat no character-level tool can fix — reversing the storage order of a right-to-left script does not reverse how it reads, because the renderer applies the bidirectional algorithm to whatever it is handed. Reversed Arabic or Hebrew will look scrambled rather than mirrored.
Frequently asked questions
What's the difference between the word modes?
‘Word order’ keeps each word spelled normally but reverses their sequence (the quick fox → fox quick the). ‘Letters in each word’ keeps the words in place but spells each one backwards (the quick → eht kciuq).
Does character reversal break emoji?
No, because it reverses by grapheme cluster rather than by code point. Code points are not enough: a skin-toned 👍🏽 is two of them and would come back as a detached swatch, a flag is two regional-indicator letters that would swap into a different country, and a decomposed é would move its accent onto the neighbouring letter. Splitting on what a reader sees as one character keeps all of those whole, and reversing twice returns exactly what you started with.
Does it change line breaks?
Only ‘Line order’ rearranges lines (last line first). The word modes reverse within each line and keep the line breaks; character mode reverses everything including the breaks.
Is my text uploaded?
No. The reversing happens entirely in your browser; nothing is sent to a server.
Related tools
Upside Down Text Generator
Flip your text upside down with rotated Unicode characters, in your browser.
Text
Text Repeater
Repeat a word, line or block of text any number of times — joined by a new line, space, comma, nothing, or your own separator.
Text
Hash Generator (SHA)
Generate SHA-1, SHA-256, SHA-384, and SHA-512 hashes from text.
Developer
Sort & Dedupe Lines
Sort, dedupe, trim, shuffle, or reverse a list of lines. Natural sort for embedded numbers, case-sensitive toggle, blank-line removal.
Text
CSV Transpose — Swap Rows and Columns
Transpose CSV data so rows become columns and columns become rows, in your browser.
Text
String Distance Calculator
Compare two strings with Levenshtein, Damerau-Levenshtein, and Hamming distance. Plus a similarity percentage you can use as a fuzzy-match threshold.
Text