Skip to content

Subtitle Encoding Fixer

Fix mojibake, weird characters, and garbled text in your subtitle files. Free, private, and works entirely in your browser.

Drop a file here or click to browse.srt, .vtt, .txt

First 2000 characters per preview. "After" updates when you change encoding or reverse mojibake.

Before (raw UTF-8)

How the file appears with default UTF-8 reading.

Upload a file to see preview

Detected encoding:

After (fixed)

Result with your chosen encoding applied.

Upload a file to see preview

Use 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.