Text & encoding

Unicode Text Tools

Reverse, split, repeat, pad and rotate text by complete graphemes. Keep emoji intact, or use explicit code point modes for ranges and numeric shifts.

Stays in your browserFiles and text are processed in this tab.
Unicode Text ToolsLocal processing

Exact-count pieces are contiguous and differ by at most one grapheme; count must not exceed grapheme count. Regex uses Unicode mode and raw source, no slash delimiters. Empty matches and matches cutting a grapheme are rejected. Random padding samples from the padding field as a grapheme pool.

Add input, or load the sample.
0 graphemes0 code points0 UTF-16 units0 UTF-8 bytes

Text & encoding

How it works

A grapheme is a user-perceived text unit, such as é or a joined emoji. Reversing UTF-16 units can break surrogate pairs; reversing individual code points can separate accents and flags. Grapheme operations move complete clusters instead.

Grapheme width is not display width. A CJK character or emoji may occupy more screen space than a Latin letter. Padding here counts graphemes, so it is not a terminal column alignment engine.

What you can do

Reverse, split, chunk, repeat, rotate, truncate, sort, join and pad text, optionally per line. Positive rotation moves left and negative moves right. Advanced code point modes shift values or extract/generate bounded ranges; those intentionally operate below the grapheme layer. Exact-count pieces are contiguous and differ by at most one grapheme; count must not exceed grapheme count. Regex uses Unicode mode and raw source, no slash delimiters. Empty matches and matches cutting a grapheme are rejected. Random padding samples from the padding field as a grapheme pool.

How to use it

  1. Choose an operation, then paste text or open a UTF-8 file.
  2. Set the amount, separator or padding required by that operation. Enter \n for a line break. Range endpoints are hexadecimal; generation can filter letters or numbers.
  3. Apply and inspect the result before copying, downloading or reusing it. Undo restores the previous input and controls.
  4. Exact-count pieces are contiguous and differ by at most one grapheme; count must not exceed grapheme count. Regex uses Unicode mode and raw source, no slash delimiters. Empty matches and matches cutting a grapheme are rejected. Random padding samples from the padding field as a grapheme pool.

Errors and limits

Code point sorting is deterministic, not dictionary collation. Numeric shifts reject surrogate and out-of-range results. Range extraction can separate components of a grapheme.

Range generation is ascending and limited to 10,000 values, skipping surrogate code points. Repetition and padding also respect the 2,000,000-character output limit. Combining-mark addition requires actual combining characters.

Exact-count pieces are contiguous and differ by at most one grapheme; count must not exceed grapheme count. Regex uses Unicode mode and raw source, no slash delimiters. Empty matches and matches cutting a grapheme are rejected. Random padding samples from the padding field as a grapheme pool.

Frequently asked questions

Will reversing preserve emoji and accents?

Grapheme modes preserve the clusters recognized by your browser’s Intl.Segmenter, including flags and common joined emoji.

Does this reverse the reading direction of Arabic or Hebrew?

It changes logical order, not the Unicode bidirectional layout algorithm. Reversing text is not a method for fixing RTL display.

Related tools