Generate flipped text

Hello! becomes ¡ollǝɥ. The result is ordinary text, so its appearance depends on the font in the app where you paste it. This tool does not rotate a picture or apply a font.

  1. Enter your text, including any spaces or line breaks you want to keep.
  2. Choose Flip text and inspect the result. Copy result copies only the generated text.
  3. Editing the input hides the old result. Clear empties both input and output.

What changes and what stays together

One reversal across the entire input

All text is lowercased using JavaScript's locale-independent rules. Grapheme order is then reversed across the entire input, including the order of lines. There is no separate reverse-each-line mode. Spaces and line breaks remain characters in the result.

A limited set of lookalike symbols

The fixed mapping covers selected Latin letters and punctuation. Characters outside it remain unchanged after lowercasing. Chinese text is reordered, not visually turned upside down. Combining marks stay with their grapheme but are not rotated.

Native Intl.Segmenter keeps supported emoji sequences and combining-character clusters together. Segmentation depends on your browser's Unicode support. A browser without this API shows an error instead of splitting text into UTF-16 units. Unpaired Unicode surrogates are rejected.

Text flip questions

Will flipping twice restore my text?

Not in general: the first pass lowercases the text, so original capital letters cannot be recovered. This is a visual text effect, not reversible encoding.

Does the converter send the text to a server?

The flip operation runs in this page's JavaScript and does not submit the input. The site still loads page resources; this statement concerns the conversion itself.

Why do some characters look unchanged?

Only the tool's fixed mapping has upside-down substitutes. Unmapped characters keep their lowercased form; the receiving font determines how the substitutes look.

Recent tools: