deck names which are written in Bengali language aren’t showing properly. It is not only breaking on Browse table but also showing broken names when I hit ‘Create Deck’ option.
the bangla words written above, aren’t showing correctly.
in the above screenshot as you can see, I can’t read the deck names that are written in bengali.
what is the fix for this?
device and app info:
Anki 26.08.1 (39e4b0b4)
Python 3.13.13 Qt 6.11.0 PyQt 6.11.0
Platform: Windows-10-10.0.19045-SP0
windows 10 pro
thank you
I can’t see the text in those screenshots clearly – but also I don’t know what they are supposed to look like and I wouldn’t recognize text in Bengali anyway. So I’ll ask you: are the right characters appearing, but it’s just hard to read? Or are they the wrong characters?
As far as font – I’d be surprised if custom fonts are supported in the Browse screen table, and text-entry windows (like “Create Deck”). Has the app supported custom fonts there for you in the past, and it stopped supporting them?
Probably font misconfiguration.
- Open Browser.
- Click “Cards…”
- Click “Options”
- “Browser Appearance…”
- Activate Checkbox “Override font”
- Select a font that supports your language.
- Safe.
as you can see, I can’t even know what are those deck names are showing even though those are written in Bangla. additionally the Sort Field’s bangla is showing properly. I can read the bangla written that are on the Sort Field in this screentshot. But the Deck names which includes bangla words aren’t showing properly, I can’t even recognise the bangla alphabets let alone read the deck name. Don’t know what is the issue. it looks like deck names aren’t rendering fonts properly.
I can’t understand the characters because the characters aren’t showing properly. Bangla is my native language.
right now I can’t even create deck name with bangla as I can’t understand what I am writing as name in bangla.
supposed to show like this:

but it shows like the following:
can’t follow. confused at the step 2. I can see two “Cards” , on which should I click?
That’s a pretty big distinction. The “Sort Field” column is showing you the contents of a field, which could be formatted and have a display font assigned. The “Deck” column is showing a name that the system uses – which is why I suspected no fonts, no formatting.
Yes, that’s exactly the same thing. If the characters you are using are only displayed correctly in certain fonts, then you won’t be able to use them anywhere that you can’t specify the font.
what is the solution for this now? Do you have any idea?
it didn’t used to happen in version 25. If there is no solution how can I move to older version? is there any way?
look, the bangla fonts are completely broken in deck names. I can’t even recognise the characters.
Thanks.
I followed the steps, the same issue remains.
You didn’t answer this when I asked in my first response – Is there another version that you’ve used that did support custom fonts in deck names?
I am extremely sorry, may be I overlooked the part you asked the question.
recently I updated from the terminal version 25 to the newest stable version 26.
In the terminal version I didn’t face this issue.
The deck homepage showing the deck names properly in bangla but don’t know why the font is showing in breaken way when I try to do “Create Deck” or go into the browser.
deck homepage:
inside browser:
I hope these will help understand the issue.
I hope the following AI explanation will help to understand the issue since I am struggling to explain what is happening.
Updated Issue Summary
Bangla (Bengali) text rendering breaks entirely on native UI elements (such as the Browse sidebar and “Create Deck” dialog) after updating from Anki v25 to v26, despite rendering perfectly on the main Deck homepage.
The New Browser Table Discrepancy (Crucial Detail)
Within the Browse window’s main card list table, the text rendering succeeds or fails depending entirely on the specific column being displayed:
-
Sort Field Column (Renders Correctly): The actual card content (Bangla text within the note) renders flawlessly, maintaining all complex ligatures, vowel markers, and conjuncts.
-
Deck Column (Renders Broken): In the exact same row, the text in the Deck column is completely broken, displaying as disassembled raw characters and dotted circle placeholders.
Technical Implications for Developers
This side-by-side behavior in the browser table provides a massive clue for debugging, proving that the text shaping engine (HarfBuzz) is fully functional within Anki v26, but is not being universally applied to all Qt UI elements.
-
Card Content vs. UI Metadata: The “Sort Field” relies on the card’s data fields. Anki likely passes this column through a rendering path that respects a user-defined “Browser Font” or successfully utilizes the Chromium/WebEngine fallback logic, allowing the text shaping to execute perfectly.
-
Hardcoded Qt Rendering: The “Deck” column, the sidebar tree, and popup dialogs represent application metadata. These components are forced to use the default native Qt UI font (like Segoe UI on Windows).
-
The Fallback Failure: When the Qt UI engine realizes the default font cannot display Bangla, it triggers a fallback to a regional font. However, for these specific UI elements, Qt fails to initialize the OpenType shaping rules during that handoff, resulting in the broken visual state.
Updated Steps to Reproduce
-
Create a deck with complex Bangla text in the title (e.g., “ব্যাকরণ”).
-
Create a card inside that deck containing complex Bangla text in the Sort Field.
-
Open the Browse window.
-
Observe the sidebar: The deck name is broken.
-
Observe the card table: The Bangla text in the “Sort Field” column is perfectly shaped, while the text in the adjacent “Deck” column is broken.
AI Finding: What Could Be the Reason and Possible Way to Fix?
The distinct behavior within the QTableView—where the Sort Field column correctly renders complex text layout (CTL) but the Deck column breaks in the exact same row—is the definitive “smoking gun.” This isolates the issue away from a global HarfBuzz failure and points directly to how Anki’s custom QStyledItemDelegate handles different data types during the paint event.
-
The Rich Text vs. Plain Text Discrepancy: The “Sort Field” frequently contains HTML-formatted content (such as bolding, cloze deletion markers, or syntax highlighting). To display this, Qt is likely routing the cell’s rendering through QTextDocument. QTextDocument is highly robust, explicitly invoking full text shaping, resolving font fallbacks accurately, and passing the text through the HarfBuzz engine.
-
The Fast-Path Rendering Failure: The “Deck” column, sidebar tree, and dialog box titles are standard, unformatted plain text strings. Qt often optimizes plain text by routing it through faster rendering paths, such as QPainter::drawText. When running on Windows, if drawText encounters characters outside the default UI font (Segoe UI) and is forced to perform an on-the-fly font fallback, it frequently drops the complex OpenType shaping instructions to prioritize rendering speed, resulting in the broken dotted-circle glyphs.
Possible Developer Fixes
-
Standardize Item Delegate Rendering: If Anki uses a custom QItemDelegate or QStyledItemDelegate for the browser table, the paint() method should be reviewed. Forcing plain text columns to route through the same text layout engine (QTextLayout or QTextDocument) used by the HTML/Rich Text columns will likely force the proper CTL shaping to engage across the entire table.
-
Explicit Font Fallback Chaining: Developers can intercept the application-wide default font initialization (QApplication::setFont) and explicitly append a comprehensive fallback chain using QFont::setFamilies. By explicitly appending a known Windows Indic font (like Nirmala UI) to the application’s base font configuration, Qt does not have to guess or use fast-path fallbacks, which often preserves the shaping pipeline.
-
Qt 6 Text Shaping Flags: Investigate if recent updates in the Qt 6.x branch have altered default text shaping behaviors for basic widgets. Ensuring that flags enforcing complex text layout are universally enabled for all QPainter instances might resolve the issue without altering the specific item delegates.
I am not able to reproduce this behavior on my system, macOS Tahoe 26.6.2, Anki 26.09b1. The Bangla characters appear normal in deck names both when creating decks and when viewed in the Browse window.
When you say “windows terminal” do you mean outside of Anki? You are saying that this is a problem that is seen elsewhere on your Windows computer?
If so, then this would seem to be a problem that needs to be fixed outside of Anki. Perhaps there is a Windows OS setting that needs to be changed or a system font that needs to be downloaded and installed.
But that is font dependend. I told them above to change to an appropriate font, but they said it didn’t help. Maybe they didn’t try the right font, though…
I edited the issue. I didn’t know that mentioning “windows terminal” will confuse the viewers. Windows terminal is different thing, I just gave example that the character looked similar when on windows terminal vs code.
Please forget that I mentioned windows terminal.
…
deck homepage:
inside browser leftside:
I hope these will help understand the issue. please look how the writing is different . I can’t read those characters inside the browser.
Don’t know what font rendering is being used to handle the font rendering on browser.
No, removing that info is not helping. This is about basic troubleshooting.
Issue: the font looks different / incorrect.
So: where does the font look different, where not? Is it only happening in a specific window / app / OS-wide?
You say it happens on different apps as well (including windows terminal). This shows that the issue is not anki. It happens globally in your OS. Obvious thing to check, thus, is whether a different font fixes your issue. That’s what you should try.
Edit: Also, don’t just try a single font alternative. Not all fonts support all glyphs. You gotta try several or download a font that is known to support your language and its characters.
I’m adding some instructions in case others might want to try reproducing the behavior.
Steps to try to reproduce:
- Create a deck named
কুকুর dog
- Create a sub-deck named
কুকুর dog::বিড়াল cat
- Add a Basic note to the “dog” deck: Front:
কুকুর dog , Back: কুকুর dog
- Add a Basic note to the “cat” deck: Front:
বিড়াল cat , Back: বিড়াল cat
- In the Browse window, check to see if the Bangla characters in the deck names are correct:
- In the left sidebar.
- In the table. (Be sure to configure “Deck” as one of the columns shown in the table.)
- The Bangla character glyphs should appear similar to:
OP, do you sync using AnkiWeb? If so, I would be interested in knowing whether the deck name Bangla characters appear correct on the ankiweb.net website.