ForHosting KIT · Developer Utilities

Homoglyph text converter

Hello World becomes Неⅼⅼо Ԝо𝗋ⅼԁ: it still reads the same, but 10 of its characters are now Cyrillic, Greek or other look-alikes. Build phishing lab samples, or decode a suspicious username back to plain ASCII to expose the trick. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Text
Hello World
Calculation mode
Encode
You get
Result
Неⅼⅼо Ԝо𝗋ⅼԁ
Direction
encode
Mapped
10
Unmapped count
1

Homoglyph text conversion replaces ordinary Latin letters and digits with Unicode characters that look almost the same in common fonts—Cyrillic a and o, Greek nu and kappa, fullwidth digits, and other confusable shapes—so a string can still appear readable while its code points are no longer plain ASCII. Security analysts use that swap to build phishing and brand-impersonation lab samples; writers use it for stylistic look-alike flair; support desks need the reverse path to normalize suspicious paste back to searchable ASCII. This capability implements both directions deterministically: encode maps each Latin letter and digit to a preferred confusable glyph, decode maps a broader table of known look-alikes back to plain ASCII, and auto mode picks the path when exclusive homoglyph glyphs are present. Spaces, punctuation, emoji, and other unmapped characters pass through and appear once in an unmapped report so you always know what stayed intact.

How the look-alike swap works

A homoglyph is a character from another script or block that is visually confusable with a Latin letter or digit in everyday typefaces. Encode walks every Unicode scalar in your string, substitutes each plain A–Z, a–z, or 0–9 that has a preferred table entry—for example Latin o to Cyrillic о, Latin p to Cyrillic р, Latin x to Cyrillic х, and digits to fullwidth forms—and leaves everything else alone.

Decode walks the same string and maps any known confusable glyph back to its plain ASCII twin; the reverse table is broader than the encode table so extra Greek, Armenian, and Cyrillic look-alikes collapse cleanly even if encode would not have produced them. Order of characters is never reversed; only code-point identity changes, which is the difference between this tool and upside-down or reverse-string generators.

Input fields, modes, validation rules, and common pitfalls

Optionally send mode as encode, decode, or auto; when omitted, auto is the default. Auto mode decodes when any exclusive homoglyph glyph is present—characters that only appear as confusable forms and never as plain map keys—and otherwise encodes, which is the right default for pasting mixed text without thinking about direction. Characters without a table entry, including most emoji, CJK ideographs, and punctuation, stay in the result in original form and are listed uniquely under unmapped so you can audit coverage without rejecting the whole string.

Do not treat the output as encryption or a way to hide credentials: anyone who knows the scheme can reverse it, and security products should use decode to normalize, not encode to conceal. Prefer this landing when search intent is literally homoglyph converter, confusable Unicode, or look-alike Latin characters; fullwidth-only, Fraktur, or upside-down tools answer different intents and should stay separate.

Phishing and brand look-alike labs

Build confusable brand and domain samples for awareness training, then decode captured paste back to plain ASCII for tickets and search.

Normalize suspicious Unicode paste

Map Greek, Cyrillic, and fullwidth look-alikes in usernames or messages to plain Latin letters and digits for moderation and SIEM.

How do I convert Latin text to homoglyphs?

Use mode encode or leave mode as auto. The result field holds the confusable Unicode string.

How do I map homoglyphs back to plain ASCII?

Send the confusable string in text with mode decode, or use auto when the string already contains exclusive homoglyph glyphs. The result is the restored plain ASCII text.

What happens to characters without a mapping?

They stay in the result in their original form.

Is the homoglyph text converter free?

The browser tool runs free on your device.

What if text is empty?

Provide at least one character of plain Latin, digits, or homoglyph text to convert.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/enc/homoglyph

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/enc/homoglyph \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello World"}'
{
  "text": "Hello World"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.homoglyph",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

How homoglyph mapping works and what the response contains

On success the response echoes the original text, returns result as the transformed string, mode as the requested operation, direction as the resolved encode or decode path, mapped as the count of table hits, unmapped_count and unmapped as the unique passthrough characters, length as the scalar length of the result, and method set to homoglyph.

Input fields, modes, validation rules, and common pitfalls

Send a required string field named text containing the sample, username, brand string, or lab payload you want to convert or normalize. Aliases such as input, value, data, message, and string are accepted for the same field so scripts can reuse existing payload shapes. Direction aliases such as op, operation, and direction, and short values like enc, dec, to_homo, to_ascii, obfuscate, and normalize are also accepted. Missing text, non-string objects for text, empty strings, unknown mode values, and strings longer than the documented maximum fail with invalid_input and a clear English message. Validation failures do not consume prepaid balance.

Practical workflows, pricing, security labs, and API limits

Brand-protection workflows compare a user-facing string against a normalized ASCII form so visual spoofing stands out even when code points differ. Content and social teams occasionally want decorative look-alike text for handles and captions when a platform accepts Unicode but not custom fonts. Teachers demonstrate that visual similarity is not code-point identity, then contrast homoglyphs with true cryptographic transforms later in the syllabus. Pair with Unicode NFKC normalization only when a later step needs canonical composition; keep the homoglyph converter on its own landing so SEO intent stays sharp and users land on encode-plus-decode look-alike behavior they expect. Call the in-browser tool for one-off checks without installing libraries; call the API when a backend, serverless function, or SDK needs a stable contract under balance at $0.002 per successful item. Keep payloads to ordinary text sizes appropriate for a Worker isolate item call—this tool is for samples and captions, not multi-megabyte binary blobs.

Classroom and CI fixtures

Teachers show visual confusables versus code points; engineers pin deterministic encode and decode outputs in automated tests.

Read the full KIT documentation →