A modern, responsive Unicode text compressor that reduces character count by replacing multi-character sequences with single Unicode characters (ligatures, fractions, symbols, and more).
- Real-time compression — see results as you type
- 9 toggleable categories — choose which replacements to apply:
- Ligatures — Standard Unicode ligatures. Combines common letter pairs into single characters like 'ae' → 'æ', 'ffi' → 'ffi'.
- Compounds — Experimental combined characters that may have minor rendering defects in some fonts. Example: 'th' → 'ᵺ'.
- Fractions & Symbols — Replaces fractions, punctuation combos, and common symbols. Example: '1/2' → '½', '!!' → '‼'.
- Case Sensitivity — When enabled, only exact case matches are compressed. When disabled, tries both cases for uppercase entries.
- CJK Comp — CJK compatibility characters that visually resemble Latin letters (e.g., 'mg' → '㎎', 'ltd' → '㋏'). Enable Case Sensitivity for strict matching.
- Add Fix Chr — [EXPERIMENTAL] Prepends an invisible zero-width character that fixes CJK character rendering in some fonts. Shows a blue indicator when active.
- Emojify — Replaces emoji shortcodes with actual Unicode emoji characters. Example: ':cat:' → '🐱', ':fire:' → '🔥'.
- Words to Symbols — Replaces common words with their symbolic equivalents. Example: 'equals' → '=', 'percent' → '%'.
- Words to Numbers — [EXPERIMENTAL] Converts written-out numbers to digits. Example: 'one' → '1', 'twenty' → '20'.
- Progressive compression — Set a character limit and Compreso will apply replacements until the target length is reached
- Light/Dark theme — toggle or auto-detect system preference
- Copy button — one-click copy of compressed text
- Compression stats — progress bar + text showing % saved
- Responsive design — works on mobile and desktop
- Open the live demo
- Type or paste text in the input area
- Watch the compressed output update in real-time
- Toggle categories on/off to control which replacements apply
- Set an optional character limit to enable progressive compression
- Click "Copy" to copy the compressed text
Standard Unicode ligatures combine two or more letters into a single character:
ae→æ,AE→Æ,oe→œ,OE→Œff→ff,fi→fi,fl→fl,ffi→ffi,ffl→fflij→ij,IJ→IJ
Experimental combined characters that may have minor rendering defects:
th→ᵺ,st→st,uu→ﬓ
Fractions, punctuation combos, and symbols:
1/2→½,1/3→⅓,2/3→⅔,3/4→¾!!→‼,!?→⁉,?!→⁈
These are Unicode characters from the CJK Compatibility block that visually resemble Latin letters:
mg→㎎(milligram),kg→㎏(kilogram),km→㎡(kilometer)cm→㎝,mm→㎟,ltd→㋏(limited company)wc→㍿(water closet),ha→㏊(hectare)
Common word replacements:
equals→=,plus→+,minus→-,times→×divided by→÷,percent→%,dollar→$
Converts written-out numbers to digits:
one→1,two→2,twenty→20hundred→100,thousand→1000
When disabled (default), Compreso adds both uppercase and lowercase variants for matching:
- If
ltdis in the dictionary and Case Sensitivity is OFF,LTDwill also match - If
LTDis in the dictionary and Case Sensitivity is OFF,ltdwill also match
When enabled, only exact case matches are compressed.
Prepends a zero-width non-joiner character (U+200C) to the text. This can fix CJK character rendering issues in some fonts that don't properly handle CJK compatibility characters. When active, a blue indicator appears on the output box.
When a character limit is set, Compreso applies replacements in priority order until the text fits within the limit:
- Space compression (5 spaces → em space, etc.)
- Ligatures
- Fractions & Symbols
- Compounds
- CJK Comp
- Emojify
- Words to Symbols
- Words to Numbers
- Add Fix Chr (if any replacements were applied)
- Pure HTML5, CSS3, JavaScript (no framework, no build step)
- Noto Sans webfont for Unicode rendering
- GitHub Pages hosting
MIT