unicode-to-plain-text
Convert fancy Unicode text to plain ASCII with smart language preservation
Install
npm i unicode-to-plain-text
Usage
Basic usage:
import { toPlainText } from 'unicode-to-plain-text'
toPlainText('𝐇𝐞𝐥𝐥𝐨 𝐖𝐨𝐫𝐥𝐝')
toPlainText('🅣🅔🅢🅣')
toPlainText('HELLO')
Language preservation:
toPlainText('Hello Γεια σας')
toPlainText('Test Привет')
toPlainText('Α test')
Custom pipelines:
import {
pipe,
handleUpsideDown,
mapCharacters,
normalizeUnicode,
removeDecorations,
normalizeWhitespace,
normalizeCasing
} from 'unicode-to-plain-text'
const customTransform = pipe(
handleUpsideDown,
mapCharacters,
normalizeUnicode,
removeDecorations,
normalizeWhitespace
)
const result = customTransform('𝐓𝐄𝐒𝐓')
API
toPlainText(text, options?)
Converts fancy Unicode text to plain ASCII
text | string | Input text with Unicode characters |
options | object | Optional configuration object |
Options
normalizeSpaces | boolean | true | Collapse multiple spaces and trim whitespace |
skipEmoji | boolean | false | Preserve emoji characters (still removes other decorations like box drawing, arrows) |
Examples
toPlainText('Hello 🎉 World')
toPlainText('Hello 🎉 World', { skipEmoji: true })
toPlainText('Hello World', { normalizeSpaces: false })
toPlainText('𝐇𝐞𝐥𝐥𝐨 🎉 𝐖𝐨𝐫𝐥𝐝', { skipEmoji: true, normalizeSpaces: false })
Returns a plain ASCII string with normalized whitespace and casing
Individual Functions
handleUpsideDown(text) - Reverses upside-down text
mapCharacters(text) - Maps Unicode to ASCII equivalents
normalizeUnicode(text) - Removes diacritics from Latin text
removeDecorations(text) - Removes emojis and decorations
normalizeWhitespace(text) - Normalizes and trims whitespace
normalizeCasing(text) - Normalizes inconsistent casing
pipe(...fns) - Composes functions into a pipeline
License
Apache-2.0