The technical explanation
How Unicode to Krutidev Conversion Actually Works
Krutidev is not a Hindi alphabet stored in a different digital format. It is a set of ordinary Latin-alphabet keystrokes whose shapes were redrawn, inside the Krutidev font file itself, to look like Devanagari letters. Converting it correctly needs more than swapping characters one for one.
Krutidev Stores Keystrokes, Not Letters
When Unicode was designed for Indian languages, each Devanagari letter, vowel sign, and conjunct got its own permanent numeric codepoint, so any Unicode-aware font, browser, or operating system can display it correctly, in the correct order, forever. Krutidev predates that. It was built as a normal Latin (ASCII-range) font where every key on the keyboard was assigned a Devanagari-shaped glyph instead of its usual English letter. Typing "d" does not produce the letter "d", it produces a glyph shaped like क.
That works fine for a human typist who has memorized the keyboard layout and is only ever going to print or view the result inside software that has the Krutidev font installed. It breaks immediately the moment that same text needs to move to a Unicode-aware system: the underlying characters are ordinary Latin letters like "d", "D", "[k", not Devanagari codepoints, so any Unicode font just displays them as English.
Why a Simple Character Swap Is Not Enough
If Krutidev were a one-to-one alphabet, converting it would be a straightforward lookup table: replace every Krutidev character with its Unicode equivalent, done. Two structural differences make that insufficient on its own:
1. The Chotti I Matra Is Typed Before the Consonant It Modifies
In written Hindi, the small "i" vowel sign (ि, called chotti i or the i-matra) is drawn to the LEFT of the consonant it belongs to, even though it is pronounced after that consonant's sound. Krutidev keyboards mimic this visual position directly: the keystroke for ि (the letter "f" on a standard Krutidev layout) is typed, and therefore stored in the text, before the consonant, not after it in logical reading order.
Unicode does the opposite: it always stores the consonant first, then the vowel sign, regardless of which side the vowel sign visually renders on (the font/rendering engine handles the visual repositioning). So a correct converter cannot just replace "f" with ि in place, it has to find every "f", move it one position to the right past the following consonant, and only then substitute it for ि. Going the other direction (Unicode to Krutidev) requires the mirror operation: find every ि, move it one position to the left, then substitute it for "f".
2. A Leading Reph Is Stored After the Whole Cluster
A "reph" is the compact hook mark used when a syllable starts with an र् sound attached to a consonant cluster, for example in words like धर्म or कर्म. In normal reading and in Unicode, that र् sound comes first, logically and in storage order.
Krutidev again stores it in typed order rather than logical order, and in this case the reph keystroke actually comes AFTER the entire consonant cluster it belongs to, marked with a specific character in the Krutidev layout. A correct converter has to detect that trailing marker, remove it, and insert the equivalent reph marker back at the front of the cluster, adjusting for whether the character immediately next to it is itself a vowel sign (matra), since that changes exactly where the reph needs to land.
The Full Process, Step by Step
Putting it together, converting Krutidev to Unicode correctly happens in three passes, always in this order:
- Scan the text and reposition every chotti-i-matra keystroke to the correct side of its consonant, then substitute it for the real ि character.
- Scan the text and reposition every trailing reph marker to the front of its consonant cluster, then substitute it for the real leading-reph form.
- Run the full character and multi-character-sequence substitution table (well over 200 entries, since many common conjuncts like क्ष, त्र, ज्ञ, and nukta-marked letters like फ़ or ज़ are their own single Krutidev keystrokes) to produce the final Unicode text.
Reference Table: Common Krutidev Keystrokes and Their Unicode Meaning
A short sample of the full mapping table this converter uses (see the tool above for the complete, correctly reordered conversion, this table is for reference only):
| Krutidev keystroke | Unicode Devanagari | Meaning |
|---|---|---|
| d | क | Consonant "ka" |
| [k | ख | Consonant "kha" |
| x | ग | Consonant "ga" |
| {k | क्ष | Conjunct "ksha" |
| =k | त्र | Conjunct "tra" |
| K | ज्ञ | Conjunct "gya" |
| Q+ | फ़् | Nukta consonant "fa" |
| Z (after a cluster) | Leading र् (reph) | Repositioned to the front |
| f (before a consonant) | ि (after the consonant) | Repositioned chotti-i matra |
| 0-9 | ०-९ (or left as digits, configurable) | Devanagari digits |
Where This Mapping Comes From
The mapping table and reordering rules used by this tool follow the same widely used, community-verified Krutidev-Unicode conversion logic implemented by multiple independent open-source converters (the underlying keystroke table is effectively an industry-standard reference at this point, since it has to exactly match the original Krutidev font's own key layout to work at all). This tool's implementation was tested against real Hindi sentences to confirm that converting to Krutidev and back to Unicode reproduces the original text exactly, character for character, in every test case, see the converter to try it on your own text.
For version-specific differences between Krutidev 010, 011, and 055, and how Krutidev relates to modern fonts like Mangal, see the Kruti Dev font guide. All of this runs locally, in your own browser, nothing you convert is uploaded, see the privacy policy for the exact detail.
Frequently Asked Questions
Is Krutidev to Unicode conversion harder than Unicode to Krutidev?
Why do some free converters online produce jumbled or half-correct text?
Does punctuation and spacing convert correctly too?
Can I verify the conversion is correct myself?
See it in action
Try the converter on your own Hindi text, both directions.
Open the converterFree. No signup.