Skip to content

Fix subtitle encoding

Fix garbled subtitle characters and 'mojibake' by detecting the file's real encoding and re-decoding it correctly to UTF-8. Compare before and after, then download the fix. Free and in your browser.

100% private. Your files are processed locally in your browser and never uploaded to a server.

Drop a subtitle file

or click to browse · SRT, VTT, ASS/SSA

What "mojibake" is and why it happens

Mojibake is the garbled text you get when a file is read using the wrong character encoding, so café turns into café, caf? or caf�. The dialogue is not actually corrupted; the bytes are fine. The problem is interpretation. A character encoding is simply the agreed table that maps bytes to letters, and if a file is saved with one table but read with another, every non-English character comes out wrong.

Subtitles are especially prone to this because so many were created years ago, on Windows, in regional encodings rather than today's universal UTF-8. A Spanish subtitle saved in Windows-1252, a Russian one in Windows-1251, or a Greek one in ISO-8859-7 will look perfect on the machine that made it and break the moment a modern, UTF-8-expecting player opens it. This tool reads the raw bytes, detects the encoding they were really written in, and re-decodes them correctly into UTF-8 that works everywhere.

When you'd use it

The most common culprits

The encoding a broken file came from is usually tied to its original language.

You do not have to know which one you have. The detector works it out from the byte patterns. For a deeper, plain-English walkthrough, see the guide on fixing garbled subtitle characters.

How the repair works

The file's bytes are analysed statistically to guess the source encoding, then decoded with the browser's built-in, standards-compliant decoder and re-encoded as UTF-8. The before-and-after panels let you confirm the result looks right before you download. If the "after" text reads correctly in its language, the detection was right. If the file is already valid UTF-8, the tool says so and leaves it untouched rather than risking damage from a needless re-decode.

Avoiding mojibake next time

If you edit subtitles yourself, always save as UTF-8 (UTF-8 without a BOM is the safest choice for the widest player support). When you download a subtitle, prefer the UTF-8 version if the site offers a choice. Sticking to UTF-8 end to end means this whole class of problem simply never appears.

Is my file uploaded anywhere?

No. Detection and re-decoding happen entirely in your browser. Your subtitle file is never sent to a server, and there is no sign-up or limit.

Frequently asked questions

Why are the accented characters in my subtitles garbled?

The file was saved in a non-UTF-8 encoding, often Windows-1252 or ISO-8859-1. SubAlign detects the real encoding from the bytes and re-decodes the text correctly to UTF-8.

What is mojibake?

Mojibake is the garbled text, such as “café” instead of “café”, that appears when a file is read using the wrong character encoding.

Will this damage a subtitle file that is already correct?

No. If the file is already valid UTF-8, the tool tells you and leaves it untouched rather than risking any change.

How do I convert a subtitle file to UTF-8?

Drop the file into the tool and it detects the original encoding and re-decodes the text to UTF-8 automatically. Check the "after" panel reads correctly in its language, then download the UTF-8 copy. No need to know the source encoding yourself.

Why do my subtitles show boxes, question marks or random symbols?

Those are the telltale signs of a wrong-encoding (mojibake) file. It was saved in a regional encoding like Windows-1252 or Windows-1251 but is being read as UTF-8. Re-decoding it from its real encoding to UTF-8 restores the correct accented letters or script.

What encoding should subtitle files be saved in?

UTF-8, ideally without a byte-order mark (BOM), which gives the widest player compatibility and supports every language. Saving as UTF-8 end to end is the simplest way to avoid garbled characters in the first place.