Skip to main content
I
Uni
UNICODE
Brahmic Scripts & History

Legacy Indic Font Encodings: Bijoy 52 and Kruti Dev Demystified

Raja Ahmad & Batchmates•Updated October 2026•7 min read

1. The Origin of South Asian Typing Hacks

The Devanagari script (used for Hindi, Marathi, Nepali, and Sanskrit) and the Bengali script (Bangla and Assamese) are abugidas derived from the ancient Brahmi script. In an abugida, vowels are not written as independent stand-alone letters after consonants; rather, consonants have an inherent 'a' vowel, and other vowels attach as modifying diacritics known as Matras.

When computers arrived in government offices and print presses across India and Bangladesh during the Windows 95/98 era, the operating systems had zero native support for Brahmic complex text layout engines.

To produce printed documents, developers resorted to a brilliant but chaotic hack: ANSI Font Remapping.

2. How Kruti Dev and Bijoy Worked Under the Hood

Software packages like Kruti Dev 010 (India) and Bijoy 52 / Bijoy Classic (Bangladesh, developed by Mustafa Jabbar in 1988) took standard English Latin ASCII fonts and physically replaced the letter drawings inside the TrueType font files:

  • Pressing English key 'k' drew the Hindi letter 'ा' (Aa ki Matra).
  • Pressing English key 'd' drew the Hindi letter 'क' (Ka).
  • Pressing English key 'g' drew the Bangla letter 'উ' (U).

The computer was convinced it was storing pure English ASCII text ("dk"). But on screen, because the user had the Kruti Dev 010 font selected in Microsoft Word, it rendered as "का".

The Critical Flaw: Zero Interoperability

If an employee emailed a government report to someone who did not have the exact Kruti Dev or SutonnyMJ TrueType font installed in their Windows Fonts folder, the document opened as unintelligible English character gibberish.

3. The Typographic Challenge: Reordering Left-Attached Matras

Converting these fonts to modern Unicode is not a simple string replacement. The primary algorithmic complexity lies in left-attaching vowels.

In phonetic speech and in standard Unicode, the consonant comes first, followed by the vowel. For example, in the Hindi word "कि" (Ki):

Unicode Order: क (U+0915 - Consonant) + ि (U+093F - Short I Matra)

However, on an old typewriter, because the 'ि' loop curves back over the left side of the consonant, the typist was forced to strike the Matra key first, before striking the consonant!

Kruti Dev Raw Keystroke: f (Matra) + d (Consonant)

A Unicode converter must maintain an internal state machine that scans ahead, identifies left-leaning vowel glyphs, detects whether the following consonant has half-letters (Virama conjuncts like 'क्' or 'स्त्र'), and swaps their order to reconstruct valid phonetic Unicode sequence.

4. Unicode Standard Blocks for Indic Scripts

The Unicode Consortium allocated dedicated, unencumbered script blocks for all Brahmic writing systems:

  • Devanagari: U+0900 to U+097F (Hindi, Marathi, Sanskrit)
  • Bengali & Assamese: U+0980 to U+09FF (Bangla)
  • Gurmukhi: U+0A00 to U+0A7F (Punjabi)
  • Gujarati: U+0A80 to U+0AFF

Modern operating systems (Android, iOS, Windows, macOS, Linux) have built-in OpenType shaping engines (HarfBuzz, DirectWrite, CoreText) that render these code points with beautiful ligatures on all screens without any custom font installations.

Bijoy to Unicode Tool

Instantly convert SutonnyMJ and Bijoy text into clean Bangla Unicode.

Launch Bijoy Converter →

Kruti Dev to Unicode Tool

Transform legacy government Hindi documents into searchable Unicode.

Launch Kruti Dev Converter →