VLC Subtitle Garbled / Wrong Characters: Fix Encoding

Subtitle Issues Last updated: Applies to: All platforms · VLC 3.0.x

Garbled subtitles — question marks, black diamonds, or a wall of nonsense characters — are a text-encoding problem, not a damaged subtitle file. The subtitle file is fine; VLC is decoding it with the wrong character set. This is extremely common with legacy SRT files saved as Windows-1252 or Central European, and equally common with UTF-16 files. One preference change fixes it globally; the per-file override fixes it instantly.

Why does this happen?

  • Wrong default encoding in VLC — VLC assumes UTF-8; legacy files in Windows-1251/1252/GBK get misread.
  • UTF-16 encoded subtitles — some tools save SRT as UTF-16 with BOM; VLC’s auto-detection sometimes picks the wrong side.
  • BOM-less UTF-8 with Chinese/Cyrillic content — without a BOM, VLC may guess a legacy codepage.
  • ASS/SSA with unsupported charset headers — the file declares one encoding but contains another.

How to fix it

Fix 1Fix subtitle rendering (encoding)

Makes subtitles display correctly

  1. Go to Tools > Preferences > Subtitles (under "Subtitles / OSD").

    Subtitle settings open.

  2. Set "Default encoding" to UTF-8 — and if that fails, try Windows-1252, Windows-1251 (Cyrillic), or the codepage matching your language (or try Windows-1252 / Central European for old files).

    Text decodes correctly.

  3. Click Save and reopen the video.

    Subtitles re-render with the new settings.

NotePer-file overrides: right-click the video > Subtitle > Sub Track to pick a track; use G and H keys for fine time-shift.

Fix 2Override the encoding for one file (quick test)

Fixes the current file in 10 seconds — and identifies the right codepage

  1. While playing, go to Subtitle > Sub Track (right-click menu) — open the "Character encoding" submenu if available.

    Encoding options appear.

  2. Cycle through UTF-8, Windows-1252, Windows-1251 until the text is readable.

    The correct encoding is found.

  3. Note the working encoding and set it as default in preferences.

    Future files of this type decode correctly.

NoteVLC 3.0 exposes the encoding picker per-track via Subtitle > Character encoding on some platforms; on others, use the global default.

Fix 3Re-save the subtitle as UTF-8

The permanent, file-level fix

  1. Open the .srt in Notepad++ (or VS Code / any editor with encoding control).

    The file opens, possibly garbled.

  2. Menu > Encoding > Convert to UTF-8 (without BOM is fine).

    The file is converted.

  3. Save, reload the video in VLC.

    Subtitles render correctly everywhere, on any device.

NoteConverting to UTF-8 makes the subtitle portable — VLC, TVs, phones and web players all handle UTF-8 reliably.

Fix 4Reset VLC preferences to defaults

Clears corrupted settings that cause crashes, black screens and audio issues

  1. Close VLC completely.

    No VLC process is running.

  2. Open a command prompt (Win+R → cmd) or terminal.

    A command line is available.

  3. Run: vlc --reset-config (Windows/Linux) — on macOS delete ~/Library/Preferences/org.videolan.vlc instead.

    VLC preferences are restored to defaults.

  4. Launch VLC and re-apply only the settings you actually need.

    VLC starts with clean settings.

NoteThis erases all custom preferences (including shortcuts and skins). Export your config first under Tools > Preferences > All > Interface if you want a backup.

Advanced fixes

Fix 1Fix ASS files with wrong charset headers

Handles styled subtitles that ignore encoding settings

  1. Open the .ass file in a text editor and check the "Script Info" header for a charset line.

    The header is visible.

  2. If the file contains Russian/Chinese in an otherwise UTF-8 header, re-save it as UTF-8 and remove any charset override line.

    The header matches the content.

  3. Reload in VLC — ASS styling now applies with correct text.

    Styled subtitles are readable.

NoteASS files carry their own font and charset metadata; when they conflict, the file must be fixed — VLC follows the header.

How to avoid it in the future

  • Save subtitles as UTF-8 by default.
  • Use tools (subliminal, subdownloader) that output UTF-8.
  • If you hand-edit subtitles, keep the BOM or ensure the editor writes UTF-8.

Frequently asked questions

Why do my subtitles show as boxes (□) in VLC?
Boxes mean the font lacks glyphs for the characters, or the encoding is wrong. First fix encoding; if boxes persist with correct encoding, the font is missing the script — change the subtitle font in preferences.
Does VLC support Chinese, Cyrillic or Arabic subtitles?
Yes, with a font that covers the script. Encoding must be UTF-8 (or the matching codepage). For Arabic/Hebrew, also enable the RTL option in subtitle preferences.
The subtitle looks fine in Notepad but garbled in VLC — why?
Notepad auto-detects the encoding; VLC uses its configured default. Set VLC’s default encoding to match the file’s actual encoding.
Garbled text only in fullscreen?
That is unusual and points to the renderer, not encoding. Switch the video output module or update the GPU driver.

Summary

Fix subtitle rendering (encoding) — Makes subtitles display correctly. If it does not help, work through the remaining fixes in order: each targets a different layer of the problem. Most users resolve this issue by fix 3 at the latest. Keep VLC updated (current stable: 3.0.23) and revisit this guide when a new VLC version ships.