There isn't just one "Hindi text is broken" problem — there are actually three different failures that all look similar at first glance, and each one needs a different fix. Let's sort out which one you're dealing with.
Problem 1: Little Empty Boxes (□□□)
This means the device or app received correct Unicode Hindi text, but doesn't have any font installed that can display Devanagari characters. The data is fine — it's a missing-font problem, not a broken-text problem.
Fix: Install a Unicode Devanagari font like Mangal or Noto Sans Devanagari (see our installation guide). This usually happens on older systems, some Linux distributions, or apps that don't bundle Indic language support by default.
Problem 2: A Question Mark in a Diamond (�)
This is a different, more serious issue — it means the text encoding itself got corrupted somewhere along the way, usually when a file was saved or transferred using the wrong character encoding (for example, saved as older "ANSI" instead of UTF-8). The original Unicode data may actually be lost, not just hidden.
Fix: If you still have the original source (the app or file where you first typed it), re-copy from there instead of the corrupted copy. When saving text files that contain Hindi, always choose UTF-8 encoding explicitly if your app or text editor gives you the option — this is the one encoding that reliably preserves Devanagari characters.
Problem 3: Random English Letters (Gibberish)
This is the most common one we hear about, and it's not actually broken at all — it means the text was originally typed in an old ASCII-based font like Kruti Dev, Chanakya, or DevLys. These fonts store Hindi text as disguised English letters, so removing the exact font reveals the "real" underlying English characters. We cover this in detail in our Unicode vs ASCII explainer.
Fix: Run the text through our Kruti Dev to Unicode converter, which maps each disguised character back to its correct Devanagari equivalent.
Where Each Problem Tends to Show Up
| Situation | Likely Cause |
|---|---|
| Old website or app showing boxes | Missing Devanagari font (Problem 1) |
| Text pasted from an old .txt file into a new app | Encoding corruption (Problem 2) |
| Text copied from an old Word document or printer software | Kruti Dev-style ASCII font (Problem 3) |
| WhatsApp/Instagram bio looks fine to you, broken for a friend | Their device is missing the specific stylised Unicode characters used |
Why This Happens More on Some Devices Than Others
It's worth understanding why the exact same piece of text can look perfect on your phone and completely broken on someone else's, because it explains a lot of the confusion. Devanagari support isn't automatically built into every operating system and every app the same way. Newer phones and updated operating systems generally ship with a Devanagari font pre-installed, so text just works. Older Android versions, budget phones with stripped-down software, older Windows builds, and some Linux distributions were never set up with Indic language fonts by default — so the exact same Unicode text arrives correctly, but the device has nothing to draw it with.
Apps make this worse in their own ways too. Some apps bundle their own fonts and ignore the system font entirely, which is why you'll occasionally see Hindi display fine in one app but show as boxes in another on the very same phone. This is also why testing "does this look right" only on your own device isn't a reliable check — your phone might already have everything installed that a friend's doesn't.
A Word on Browsers and Websites Specifically
If you're seeing broken Hindi text on a website rather than in an app, there's one more possibility worth
checking: the website itself might not have declared the correct character encoding in its code, even if
the
text stored on the server is genuinely valid Unicode. Most modern websites declare UTF-8 in
their HTML automatically, but older or poorly built sites sometimes don't, which can cause a browser to
guess wrong and render everything, including English text, incorrectly. If English text on the same page
also looks slightly off, that's usually the sign — it points to the page itself rather than anything
wrong
with the specific Hindi content.
Testing Before You Send Something Important
If you're about to send Hindi text somewhere it really needs to display correctly — a job application, a printed certificate, a client presentation — it's worth a thirty-second check first rather than finding out after the fact. Paste the text into a completely plain text field (a fresh WhatsApp message to yourself, or Notepad on Windows) with no special formatting applied. If it reads correctly there, with no font tricks involved, you can be reasonably confident it's genuine Unicode and will travel safely to most modern devices. If it already looks wrong at that stage, you've caught the problem before it reached someone else, rather than after.
Preventing This Going Forward
- Always type new Hindi content in a Unicode font (Mangal, Nirmala UI, Noto Sans Devanagari) — never a legacy ASCII font like Kruti Dev
- When saving text files, choose UTF-8 encoding explicitly
- When sharing Hindi text digitally, test it in a plain, unstyled text field first to confirm it's real Unicode before you rely on it elsewhere
- Keep old Kruti Dev documents around if you need them for print, but convert a copy to Unicode for anything digital
- If you manage a website, double-check that your pages declare UTF-8 encoding in the HTML — most modern site builders do this automatically, but it's worth a one-time check if you're on custom or older code
Ninety percent of the "my Hindi text is broken" messages we get turn out to be Problem 3 — old ASCII font text being copied somewhere new. The good news is it's also the easiest one to fix, since nothing is actually lost, it just needs converting.
Frequently Asked Questions
Why does Hindi text look fine on my phone but broken for a friend?
Almost always a missing-font issue on their end (Problem 1), especially if they're on an older or budget
device. Ask them to check if any other Hindi content — a news app, another contact's name — displays
correctly on their phone. If nothing does, it's a device-wide font gap, not something specific to your
message.
Can I fix Problem 2 (the diamond question mark) myself, or is the text gone for
good?
If you still have the original source where the text was first typed correctly, yes — just re-copy from
there and save using UTF-8 going forward. If the only copy you have left is already showing the diamond
symbol, the underlying data is usually genuinely lost and can't be reconstructed.
Is there a way to check if text is "real" Unicode before I send it?
Yes — paste it into a plain text field with no custom font applied, as described above. Genuine Unicode
Hindi text will read correctly regardless of font; disguised ASCII text (like Kruti Dev) will not.
Paste it in and get clean, working Unicode Devanagari back instantly.
I run HindiFontStyle.co.in. People often describe these three completely different problems with the same phrase — "my Hindi is broken" — so I wanted a page that helps separate out which one is actually happening.