Reverse Text
Reverse by characters, words, or lines
Why is Unicode-safe reversal non-trivial?
Naïvely reversing a string by character index breaks emoji and combined characters: 👨👩👧 (a family emoji) is actually four code points joined by zero-width joiners, and a flag emoji is two regional-indicator code points. Splitting on `.split('')` and reversing leaves the pieces shuffled.
This tool reverses by Unicode code point, so accented characters and most text survive; multi-code-point emoji (ZWJ sequences, flags) may break apart. Useful for puzzle creation, text effects, or simply curiosity.
Use cases
- Test palindrome ideas — reverse a phrase to see if it reads the same both ways.
- Word puzzle prep — generate clue answers for crosswords or word-search builders.
- Magic / mentalism scripts — pre-write a 'mind-reading' reveal that reverses to the audience's input.
- Debug Unicode rendering — reverse a mixed LTR/RTL string to see how the renderer handles direction.
Examples
| Input | Result |
|---|---|
| Hello World | dlroW olleH |
| Café 👨👩👧 | 👨👩👧 éfaC |
Frequently asked questions
Is the reversal Unicode-safe?
Reversal is by Unicode code point, so accented letters and most characters survive. Multi-code-point emoji — ZWJ sequences like family glyphs and skin-tone modifiers — get split into their parts, so they won't always stay intact.
Are line breaks preserved?
Yes — but reversed in order along with everything else. The first line of input becomes the last line of output (its characters reversed too).
Is there a length limit?
Only browser memory. The reversal completes in a single pass and handles megabytes of text without issue.
Does it work for right-to-left scripts?
Bidirectional text (Arabic, Hebrew) reverses character-by-character, which usually isn't what you want for those languages — the visual result depends on your browser's bidi algorithm.
Is the tool offline?
Once the page loads, yes — no network calls happen during reversal.
