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.

Quick way to tell which problem you have: Copy the broken text into a plain text app with no special font applied. Empty boxes stay as boxes (Problem 1). A diamond question mark stays as one symbol, often repeated (Problem 2). Random English letters that look like a keyboard mash mean it's Problem 3.

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

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.

Fix Gibberish Hindi Text

Paste it in and get clean, working Unicode Devanagari back instantly.

Open Converter →
A
Written by Akshay

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.