Skip to content
induwara.lk
induwara.lkSri Lanka · Text

Unicode to FM Abhaya Converter (Sinhala, and FM to Unicode)

Unicode to FM Abhaya (and FM Malithi), or FM fonts back to clean Sinhala Unicode. Paste either direction, copy the result for Facebook, WhatsApp, government eServices, MS Word, or print layouts that still need the FM font. Runs in your browser. Nothing is uploaded.

By Induwara AshinsanaUpdated Oct 6, 2026
Convert Sinhala textFM Abhaya ↔ Unicode
Round-trip verified · runs in your browser
Direction
0 / 50,000

Nothing is uploaded, conversion happens entirely on your device.

Try a sample
Source characters
0
Output characters
0
Unmapped glyphs
0
Sinhala Unicode

Your converted text appears here. Paste something above or pick a sample to see it instantly.

Mapping tables follow the Unicode Sinhala block (U+0D80–U+0DFF), SLS 1134, and the UCSC LTRL legacy-font research. This build covers the FM-Abhaya core set; any glyph outside it is counted as “unmapped” above rather than silently dropped. Full source links are in the references below.

Was this useful?

How it works

For roughly two decades before Unicode adoption, almost all digital Sinhala was typed in font-encoded “legacy” fonts, the FM and DL families, Kaputa, Bhashitha and the rest. In those fonts each Sinhala glyph occupies a Latin or ASCII code position, and the text is stored in visual order (the order glyphs appear left-to-right on screen). On any device without that exact font installed, the same bytes render as Latin gibberish such as Y%S ,xld instead of ශ්‍රී ලංකා.

Sinhala Unicode (the Unicode block U+0D80–U+0DFF) instead stores text in logical order, pronunciation/typing order, and lets the system shape it at render time. Because there is one standard code point per character, Unicode displays identically on every modern device with no special font. Conversion between the two is a deterministic, two-stage transform, not a guess:

  1. Glyph substitution. Each legacy code unit (and known multi-glyph ligature, longest match first) is replaced with its target Unicode code point using the per-font mapping table. Longest-match-first scanning means a two-key sequence such as wd → ආ is matched before the single w → අ.
  2. Visual-to-logical reordering. Several dependent vowel signs, the kombuva family ෙ ේ ෛ, are drawn before their consonant in legacy fonts but must follow it in Unicode. So legacy visual ෙ + ක becomes logical ක + ෙ = කෙ. The reverse direction inverts both stages.

The table covers the FM-Abhaya / FM-Malithi character set: all 18 independent vowels අ … ඖ, all 41 Sinhala consonants of the U+0D9A–U+0DC6 range (including the prenasalised ඟ ඬ ඳ ඹ and the rare ඞ ඦ ඤ ඥ ඣ), every dependent vowel sign, and the FM touching-letter ligature positions, the single keys the font uses for a consonant already carrying a sign, such as õ for ව් or È for දි. Each of those, and each of the 246 consonant-plus-kombuva combinations ෙ ේ ෛ ො ෝ ෞ, is checked to survive a full round trip in both directions.

The mapping points and ordering rules come from the Unicode Standard Sinhala chart, the SLS 1134 national standard for Sinhala character coding, and the University of Colombo School of Computing (UCSC) Language Technology Research Laboratory legacy-font research. A code position is listed only where two independent published readings of that research agree on it; the handful where they disagree are deliberately left out and reported as unmapped. Every mapping in this build is checked to round-trip losslessly, converting FM Abhaya → Unicode → FM Abhaya returns the original text, which is how the tool earns its “round-trip verified” badge. Glyphs outside the verified FM-Abhaya core set are never guessed: they pass through unchanged and are counted for you as unmapped, so a partial conversion is always visible rather than silent.

Worked examples

Prefix-sign reordering

fl→කෙ

  1. Substitute glyphs: f → ෙ (kombuva), l → ක
  2. Intermediate (visual order): ෙක
  3. Reorder the prefix sign after its consonant: ක + ෙ
  4. Output: කෙ, valid Unicode, renders identically

A full word, “ලංකා” (Lanka)

,xld→ලංකා

  1. Substitute each glyph: , → ල, x → ං, l → ක, d → ා
  2. No prefix signs here, so no reordering is needed
  3. Output: ලංකා (la + anusvara + ka + aa-sign)

With a conjunct, “ශ්‍රී ලංකා” (Sri Lanka)

Y%S ,xld→ශ්‍රී ලංකා

  1. Y → ශ, then % → ්‍ර (rakaaransaya: ් + ZWJ + ර), then S → ී
  2. First word assembles as ශ + ්‍ර + ී = ශ්‍රී
  3. Space is preserved; second word converts as in the example above
  4. Output: ශ්‍රී ලංකා, round-trips back to “Y%S ,xld” exactly

A full sentence, end to end

Y%S ,xldfõ mdi,a orejkag→ශ්‍රී ලංකාවේ පාසල් දරුවන්ට

  1. Y%S → ශ්‍රී, then , → ල, x → ං, l → ක, d → ා = ලංකා
  2. fõ is the kombuva key plus the FM touching glyph for ව්, together ව + ේ, so ලංකා + වේ = ලංකාවේ
  3. m → ප, d → ා, i → ස, , → ල, a → ් = පාසල්
  4. o → ද, re → රු (ර has its own ligature key for ු), j → ව, k → න, a → ්, g → ට = දරුවන්ට
  5. Output: ශ්‍රී ලංකාවේ පාසල් දරුවන්ට, 0 unmapped glyphs, and it round-trips back to the original keystrokes exactly

Frequently asked questions

Sources & references

The mapping tables on this page were last cross-checked against the Unicode Sinhala chart and the cited references on 2026-09-28. Coverage of additional FM, DL, Kaputa, and Bhashitha glyphs expands as each is verified against the LTRL reference, a mapping is added only once it is confirmed, because a wrong mapping produces silently-incorrect text.

Related tools

Comments & feedback

Spotted a bug or want an improvement? Tell us, our team reviews every comment, and good ideas get built. Comments are public and anonymous.

Found a glyph that didn't convert, or want another legacy font added?

Email me at [email protected] , most fixes ship within 24 hours.