Troubleshooting•September 21, 2026•Updated October 1, 2026• 9 min read

How to Fix Broken Sinhala Characters in Subtitles (Squares, Question Marks, and Glitches)

Akash MakesWritten by Akash Makes

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 .srt file 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, Unicode U+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+0D80 to U+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).

AttributeLegacy Fonts (FM / DL Series)Modern Unicode (UTF-8)
Encoding StandardHijacks standard ASCII / ANSI code pointsUniversal Unicode standard (U+0D80–U+0DFF)
Cross-Platform SupportRequires proprietary TTF fonts installed on every deviceWorks natively on Android, iOS, Windows, macOS, Linux
Web & Smart TV CompatibilityFails completely on modern Smart TVs and mobile appsSupported by all modern web browsers and streaming players
SearchabilityCannot be indexed or searched as Sinhala textFully 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

  1. Right-click your .srt file and select Open with > Notepad.
  2. 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.
  3. Click File > Save As... (or press Ctrl + Shift + S).
  4. 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.
  5. Click Save and overwrite the original file.

Fixing Encoding in Visual Studio Code

  1. Open the subtitle file in VS Code.
  2. In the bottom status bar, check the encoding label (e.g., UTF-8 or Windows 1252).
  3. Click on the encoding label.
  4. Select Save with Encoding.
  5. Choose UTF-8 (or UTF-8 with BOM if targeting hardware players).
  6. Press Ctrl + S to 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

  1. Open VLC and go to Tools > Preferences (or Ctrl + P).
  2. Click on the Subtitles / OSD tab at the top.
  3. Under Subtitle effects, find the Font dropdown.
  4. 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
  5. Change Default encoding to Universal (UTF-8).
  6. 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)

  1. Right-click inside PotPlayer and select Preferences (or press F5).
  2. Navigate to Subtitles > Font.
  3. Set the Primary Font to Iskoola Pota or Nirmala UI.
  4. Set Charset to Default or UTF-8.
  5. 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 ScreenDiagnostic CauseQuick Solution
□□□ □□□□□ (Empty squares)Media player font lacks Sinhala Unicode glyphsChange subtitle font to Iskoola Pota or Noto Sans Sinhala in player settings
???? ????? (Question marks)File was saved in single-byte ANSI / ASCII formatReopen in Notepad and re-save with UTF-8 encoding
é, à, ü (Garbled European text)UTF-8 file being interpreted by player as Windows-1252Save 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 misplacedMedia player lacks complex text layout (CTL) engineEnable 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.

Akash Makes

Akash Makes

Developer & editor, SriSubs

Akash Makes is an IT undergraduate at SLIIT and a full-stack developer, with hands-on experience building web applications in React, Next.js, and Node.js. He built SriSubs to help Sri Lankans get Sinhala subtitles that actually sound like natural spoken Sinhala, not stiff textbook translations. He maintains SriSubs independently, handling everything from the translation engine to the content on this site.