Reverse text, words or line order
Reverse text by character, word or line order, check for palindromes, and create mirrored or upside-down Unicode output.
- Runs in your browser
- Nothing you enter is sent
- Free, no account
Handy for checking palindromes, building mirrored graphics, or making a message that reads upside down.
Reverses the character order. Emoji, accented letters and other multi-code-point characters are kept intact.
Off reverses the whole text, so the last line ends up first.
Removes whitespace that ends up at the start or end.
How to reverse text
- Type or paste your text, or drop a text file onto the box.
- Choose what to reverse: the characters, the order of the words, the order of the lines, or one of the two Unicode effects.
- Decide whether each line should be reversed on its own or the whole text should be flipped end to end.
- Copy or download the result. The palindrome indicator updates as you type.
The five modes
| Mode | “Hello world” | What it is for |
|---|---|---|
| Characters | dlrow olleH | Palindrome checks, puzzles, obfuscating a spoiler |
| Word order | world Hello | Reversing lists and name orders while keeping words readable |
| Line order | last line first | Flipping a chronological log or a ranked list |
| Mirror text | blɿow olleH | Text meant to be read in a mirror, vinyl and iron-on transfers |
| Upside down | plɹoʍ ollǝH | Chat messages, social bios, novelty captions |
Why naive reversal breaks emoji
The obvious way to reverse a string — split it into characters, reverse the array, join it — produces broken output for a surprising amount of modern text. JavaScript strings are sequences of UTF-16 code units, and anything outside the Basic Multilingual Plane is stored as a surrogate pair. Reversing the units separates the pair and the result renders as two replacement boxes. The same happens to a letter followed by a combining accent, to flag emoji built from two regional indicators, and to family emoji joined by zero-width joiners.
This tool splits text into graphemes — user-perceived characters — using the
browser’s Intl.Segmenter, then reverses those. Emoji, accents, Hangul syllables
and Devanagari clusters all survive intact.
Mirror text vs upside-down text
Mirror text reverses the character order and swaps each character for its left-to-right reflection, so the result reads correctly when reflected — the effect you want for a design that will be printed on the inside of a window or applied as an iron-on transfer. Upside-down text rotates the whole line 180°, substituting each character for a look-alike that appears inverted. Both use ordinary Unicode characters, so the output can be pasted anywhere that accepts Unicode; a few substitutes are missing from some fonts and will show as a box.
Neither is a font or an image, which means the text stays selectable and copyable — and also means screen readers will announce the substitute characters literally. Use them for decoration, never for content that has to be understood.
Palindromes
The palindrome indicator strips everything that is not a letter or digit, lowercases the rest, and compares the result with its reverse. That is the standard convention, so “A man, a plan, a canal: Panama” and “Never odd or even” both register as palindromes despite their spaces and punctuation. Single words such as “level” and “racecar” work the same way.
Practical uses beyond novelty
- Bidirectional text testing — check how a layout copes with unexpected character order.
- Puzzle and quiz creation — hide an answer in plain sight.
- Reversing exported lists — flip line order without re-sorting, preserving ties exactly.
- Craft and signage — mirrored text for transfers, stencils and window graphics.
- Teaching — demonstrate why string reversal is harder than it looks in a programming class.
Runs entirely in your browser
Every mode is computed locally, in chunks for long documents, with nothing uploaded. The page keeps working offline once loaded.
Questions
Does reversing break emoji and accented letters?
No. The tool splits text into user-perceived characters using the browser's grapheme segmenter, so emoji with skin-tone modifiers, flags and letters with combining accents survive the reversal intact.
What is the difference between mirror and upside-down text?
Mirror text swaps each character for its left-right reflection, so it reads correctly when held up to a mirror. Upside-down text rotates each character 180°, which is what people paste into chat and social bios.
Will upside-down text work everywhere?
It is ordinary Unicode, so it works anywhere that accepts Unicode — most chat apps, social profiles and documents. A few fonts lack some of the substitute glyphs and will show a box instead.
How does the palindrome check work?
It compares the text with its reverse after removing everything that is not a letter or digit and lowercasing the rest, so "A man, a plan, a canal: Panama" is correctly reported as a palindrome.