Quick Answer: Broken Sinhala subtitle characters (displayed as blank boxes, question marks like
???, or detached vowel signs likeෙappearing on their own) stem from two core issues: incorrect text encoding or missing Unicode fonts. To fix them immediately: (1) Open the.srtfile in Windows Notepad or VS Code, check the status bar encoding, and save it as UTF-8 (use UTF-8 with BOM if an older TV or player still shows garbled text). (2) In your video player's subtitle preferences, change the default font from generic Arial/Helvetica to a dedicated Sinhala Unicode font such as Iskoola Pota, Nirmala UI, or Noto Sans Sinhala.
Why Sinhala Subtitles Break on Digital Screens
Sinhala is a Brahmic script characterized by complex typographic rendering. Unlike the Latin alphabet where letters stand sequentially side by side, Sinhala characters combine base consonants with dependent vowel diacritics (Pillam):
- Kombuwa (
ෙ): Placed before the consonant visually, even though typed or stored logically after it. - Is-pilla (
ි,ී): Rendered above the consonant. - Paa-pilla (
ු,ූ): Rendered below or curled into the consonant tail. - Al-lakuna (
්): The virama mark that suppresses the inherent vowel. - Conjuncts & Ligatures (
ර්,්ය,්ර): Created using invisible Zero-Width Joiners (ZWJ, UnicodeU+200D).
When a video player or operating system fails to process these Unicode sequences, the subtitles glitch. Most of these glitches fall into three recognizable categories, each with its own fix.
For broader formatting best practices, see our guide on 5 common mistakes when subtitling in Sinhala.
The Three Main Types of Sinhala Character Glitches
Before opening your text editor, identify which visual symptom you see on screen:
1. The "Tofu" Boxes (□ or ▯)
- What you see: Empty rectangular boxes or hollow squares where Sinhala letters should be.
- The root cause: The video player is reading the Unicode data correctly, but the selected display font has no glyphs for the Sinhala Unicode block (
U+0D80toU+0DFF). Typographers call these placeholder rectangles "tofu". - The culprit: Default media player fonts like Arial, Calibri, or Roboto on devices that lack comprehensive international font fallbacks.
2. The Question Mark Cascade (????????)
- What you see: Dialogue replaced entirely with literal question marks or strange Western European accented letters like
éorÃ. - The root cause: Character encoding mismatch. The subtitle file was saved in ANSI, Windows-1252, or ISO-8859-1 encoding instead of UTF-8. The player attempts to parse 3-byte Sinhala Unicode characters as single-byte Western characters, destroying the data upon rendering.
3. Detached Vowel Signs and Broken Ligatures
- What you see: The kombuwa (
ෙ) appears after the letter instead of before it, or zero-width joiners fail, turningක්ර(kra) intoක් ර. - The root cause: Either the media player lacks a complex text layout (CTL) shaping engine (such as HarfBuzz), or the subtitle was authored using a legacy non-Unicode font.
Legacy Fonts vs. Unicode: What Is the Difference?
In Sri Lanka during the late 1990s and 2000s, before widespread Unicode adoption in Windows XP and 7, newspapers and desktop publishers used legacy non-Unicode fonts (such as FM Abhaya, FM Derana, or DL-Araliya).
| Attribute | Legacy Fonts (FM / DL Series) | Modern Unicode (UTF-8) |
|---|---|---|
| Encoding Standard | Hijacks standard ASCII / ANSI code points | Universal Unicode standard (U+0D80–U+0DFF) |
| Cross-Platform Support | Requires proprietary TTF fonts installed on every device | Works natively on Android, iOS, Windows, macOS, Linux |
| Web & Smart TV Compatibility | Fails completely on modern Smart TVs and mobile apps | Supported by all modern web browsers and streaming players |
| Searchability | Cannot be indexed or searched as Sinhala text | Fully searchable and machine-readable |
| Subtitle Suitability | ❌ Never use for SRT/VTT subtitles | ✅ Mandatory standard for all modern subtitles |
If an older subtitle file was typed using FM Abhaya, opening it in a modern video player will display nonsensical English characters like wfma fldfyo hkafka instead of ඔයා කොහෙද යන්නේ.
If you have legacy subtitle files, you must run them through a Unicode converter before using them. All files produced by the SriSubs online translator are saved as Unicode UTF-8 with a BOM.
Step-by-Step Fix in Windows Notepad and VS Code
The fastest way to fix question marks or broken character streams is verifying the file's UTF-8 encoding.
Fixing Encoding in Windows Notepad
- Right-click your
.srtfile and select Open with > Notepad. - Look at the bottom-right corner of the Notepad window in the status bar:
- If it reads ANSI, Windows-1252, or anything other than UTF-8, the encoding is incorrect.
- Click File > Save As... (or press
Ctrl + Shift + S). - In the Save As dialog, locate the Encoding dropdown at the bottom:
- For PC players (VLC, mpv): Select UTF-8.
- For older Smart TVs or USB media players: Select UTF-8 with BOM (Byte Order Mark). The BOM is a 3-byte sequence (
EF BB BF) at the very beginning of the file that tells players which would otherwise guess a legacy encoding that the text is UTF-8. A few strict parsers don't expect it; if the first subtitle goes missing, save as plain UTF-8 instead.
- Click Save and overwrite the original file.
Fixing Encoding in Visual Studio Code
- Open the subtitle file in VS Code.
- In the bottom status bar, check the encoding label (e.g.,
UTF-8orWindows 1252). - Click on the encoding label.
- Select Save with Encoding.
- Choose UTF-8 (or UTF-8 with BOM if targeting hardware players).
- Press
Ctrl + Sto save.
Configuring Video Players for Proper Sinhala Font Rendering
Once your file is verified as UTF-8, you must ensure your media player uses a font capable of rendering Sinhala glyphs:
1. VLC Media Player Configuration
- Open VLC and go to Tools > Preferences (or
Ctrl + P). - Click on the Subtitles / OSD tab at the top.
- Under Subtitle effects, find the Font dropdown.
- Replace the default font with one of the following installed system fonts:
- On Windows: Iskoola Pota or Nirmala UI
- On macOS: Sinhala Sangam MN or Noto Sans Sinhala
- On Linux / Android: Noto Sans Sinhala
- Change Default encoding to Universal (UTF-8).
- Click Save at the bottom and restart VLC.
For more player configurations, review our detailed guide on how to add Sinhala subtitles to any video player.
2. PotPlayer Configuration (Windows)
- Right-click inside PotPlayer and select Preferences (or press
F5). - Navigate to Subtitles > Font.
- Set the Primary Font to Iskoola Pota or Nirmala UI.
- Set Charset to Default or UTF-8.
- Click OK.
For more player setup guidance, see our comprehensive guide on how to add Sinhala subtitles to any video player.
Diagnostic Reference Table
Use this quick reference table to diagnose any subtitle display issue:
| What Appears on Screen | Diagnostic Cause | Quick Solution |
|---|---|---|
| □□□ □□□□□ (Empty squares) | Media player font lacks Sinhala Unicode glyphs | Change subtitle font to Iskoola Pota or Noto Sans Sinhala in player settings |
| ???? ????? (Question marks) | File was saved in single-byte ANSI / ASCII format | Reopen in Notepad and re-save with UTF-8 encoding |
| é, à , ü (Garbled European text) | UTF-8 file being interpreted by player as Windows-1252 | Save file as UTF-8 with BOM so the player can detect the encoding |
| wfma fldfyo (Nonsensical Latin text) | File was typed using legacy non-Unicode fonts (FM series) | Run text through an FM-to-Unicode converter before playing |
| ෙ detached or misplaced | Media player lacks complex text layout (CTL) engine | Enable HarfBuzz/Fribidi text shaping or switch to VLC / mpv |
If your subtitles display correctly but the timing drifts out of sync, check our companion walkthrough on how to sync out-of-sync Sinhala subtitles.
To learn how subtitle container specifications handle text encoding differences, explore our breakdown of SRT vs VTT subtitle formats.
Frequently Asked Questions
What is the best free Unicode font for Sinhala subtitles?
Noto Sans Sinhala by Google is universally regarded as the best open-source font for digital subtitles. It is designed specifically for high legibility at small sizes on computer monitors and television screens. On Windows machines, Iskoola Pota and Nirmala UI are built-in and work out of the box.
Why do Sinhala subtitles show as question marks on my Smart TV?
Some Smart TV media players do not detect UTF-8 unless the file starts with a byte order mark. Re-saving your subtitle file in Notepad as UTF-8 with BOM often fixes this. If the TV then skips the first subtitle, it is one of the few parsers that reject the BOM, so save as plain UTF-8 instead.
Can I fix broken Sinhala text inside Subtitle Edit?
Yes. When opening a file in Subtitle Edit, look at the Encoding dropdown located directly above the subtitle list. Change the dropdown from "System default (ANSI)" to "65001: UTF-8". Subtitle Edit's Tools > Fix common errors also includes a Unicode normalization rule.
Why does the kombuwa appear after the consonant in some video editors?
Certain video editing programs (like older versions of Adobe Premiere Pro or DaVinci Resolve) require users to enable "South Asian and Middle Eastern" text engine support in their preferences. Without this setting enabled, the text engine renders characters left-to-right without applying Sinhala glyph reordering rules.
If your subtitles display correctly but you're experiencing timing issues, see our guide on how to sync out-of-sync Sinhala subtitles.

