Subtitle Encoding Fixer
Fix mojibake, weird characters, and garbled text in your subtitle files. Free, private, and works entirely in your browser.
First 2000 characters per preview. "After" updates when you change encoding or reverse mojibake.
How the file appears with default UTF-8 reading.
Upload a file to see previewDetected encoding: —
Result with your chosen encoding applied.
Upload a file to see previewUse this if your file already contains literal mojibake characters like ’ or é that need to be un-corrupted.
How It Works
Step 1
Upload
Choose or drag in your .srt, .vtt, or .txt file. The bytes stay on your device; nothing is sent to a server.
Step 2
Preview & Adjust
We suggest an encoding from your file. Override it from the list, toggle reverse mojibake if text still looks wrong, and optionally add a UTF-8 BOM for picky players.
Step 3
Download Fixed File
Export clean UTF-8 text with one click. The filename adds -fixed before the extension so you keep the original safe.
Common Subtitle Encoding Problems
Subtitles often break when one app saves UTF-8 but another opens them as a legacy single-byte encoding (or the reverse). That mismatch produces mojibake—replacement symbols, accented letters turned into nonsense, or diamond characters. Byte-order marks (BOMs) can also confuse tools: some players expect a BOM for UTF-8 with certain languages, while others ignore or mishandle it. Double-encoding happens when UTF-8 bytes were misread as Windows-1252 (or similar), then written out again as UTF-8, layering corruption on top of the original text. This tool lets you decode from the source bytes with the right legacy encoding, optionally undo that double step, and save proper UTF-8.
Frequently Asked Questions
Why are my subtitles showing weird characters like ’ or é?
Those sequences usually mean the file was saved as UTF-8 but opened or converted using a different encoding (often Windows-1252), or the opposite: legacy bytes were interpreted as UTF-8. Picking the correct source encoding here—or using reverse mojibake—typically restores the intended letters and punctuation.
What encoding should I use for subtitle files?
Today, UTF-8 is the standard for new SRT, VTT, and TXT subtitles because it supports every language in one file. Older downloads may still be Windows-1252, Latin-1, or a regional legacy encoding; match the encoding your file was actually written in when decoding, then export UTF-8 from this tool.
What is mojibake?
Mojibake is garbled text caused by reading bytes with the wrong character mapping—like displaying UTF-8 bytes as if they were Latin-1. The result looks like random accents and symbols instead of real words. Fixing it means decoding with the encoding that matches how the file was produced.
Do I need a BOM in my subtitle file?
Most modern apps handle UTF-8 without a BOM. Some older Windows players and workflows expect a UTF-8 BOM to recognize multilingual text; if playback looks wrong only on those systems, try exporting with the BOM option enabled here.
Is my file uploaded to a server?
No. All decoding and preview happen in your browser using the standard TextDecoder API. Your file never leaves your machine unless you choose to download or share it elsewhere.