String Reverser

Reverse any string or text.

Open tool

Overview

Reverse any string character by character. The last character of your input becomes the first character of the output, the second-to-last becomes the second, and so on. It's the canonical string operation that every programmer eventually needs and surprisingly tricky to get exactly right on Unicode-rich input.

Developers checking palindrome candidates, puzzle setters scrambling clues, encoders building lightweight obfuscation, and students learning string manipulation all use a reverser. The browser-side implementation here is grapheme-aware, so accented letters and multi-codepoint emoji stay intact.

How it works

A naive reverser flips the underlying code units. That works for plain ASCII but breaks combining characters and emoji clusters into pieces. A grapheme-aware reverser first segments the string into user-perceived characters (clusters), then reverses the sequence of clusters. The result reads sensibly when characters are combinations of base + combining marks or sequences joined with zero-width joiners.

Examples

Input:  Hello
Output: olleH
Input:  café
Output: éfac          (grapheme-aware; 'é' stays a single character)
Input:  12345
Output: 54321
Input:  ABC 123
Output: 321 CBA

FAQ

What's the difference from Mirror Text?

They produce identical output. "Mirror Text" and "String Reverser" are different names for the same character-by-character flip operation, kept as separate tools because both names are commonly searched for.

Does it handle emoji correctly?

Yes. The reverser operates on graphemes, so a flag emoji or a skin-toned thumbs-up stays intact rather than splitting into raw code points.

Are right-to-left scripts handled specially?

The reversal flips character order in the logical sequence. Right-to-left scripts already display right-to-left, so reversing them produces visually confused output — that's mathematically correct but rarely useful.

Try String Reverser

An unhandled error has occurred. Reload ×