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.
Kruti Dev to Unicode Tool
Transform legacy government Hindi documents into searchable Unicode.