How to convert an SRT to UTF-8
- Drop the subtitle file into the box. SRT is the usual case, but VTT, ASS, SSA, SBV, TTML, DFXP, XML, SUB, LRC, CSV, TSV and TXT files work too, up to 20 MB. The file card shows the size and the detected encoding.
- Read the preview under "How the text reads". It shows the first 1,200 characters as they decode right now.
- If the letters look wrong, open "The file is really in" and pick the encoding for the subtitle's language. The preview changes as soon as you choose.
- Leave "Also repair é / ’ damage" ticked. It only changes the text when the repair makes it cleaner.
- Tick "Add a BOM (helps some older TVs)" only if the device you play on needs it; see below.
- Press "Save as UTF-8 and download". The file keeps its extension and gets -utf8 added to its name, for example episode1-utf8.srt.
Why subtitles turn into gibberish
A subtitle file is a list of bytes, and an encoding is the table that turns bytes into letters. Before UTF-8 became the norm, each region used its own table, and an SRT has no header saying which one was used. The player guesses, and when it guesses wrong the same bytes come out as different letters. The byte 0xC7, for example, is Ç in Western European Windows-1252, З in Cyrillic Windows-1251, Η in Greek Windows-1253 and ا in Arabic Windows-1256.
Here is how three common files look when read with the wrong table, and what the right choice gives:
- Arabic file read as Western European
- ãÑÍÈÇ becomes مرحبا after choosing Arabic (Windows-1256)
- Russian file read as Western European
- Ïðèâåò becomes Привет after choosing Cyrillic (Windows-1251)
- UTF-8 file saved again as Western European
- Ça va ? Un café. becomes Ça va ? Un café. with the repair box ticked
The first two are a wrong reading of intact bytes, so picking the right encoding fixes them. The third is real damage written into the file, which needs the repair described further down.
What the detector can tell, and what it can't
- A byte order mark at the start identifies UTF-8, UTF-16 LE or UTF-16 BE with certainty.
- Lots of zero bytes in every other position means UTF-16 without a mark, and the tool picks the matching byte order.
- Text that is valid UTF-8 is read as UTF-8. If it is also plain English with no accents, there is nothing to convert: those files are identical in UTF-8 and the old Western encodings.
- Anything else is shown as Windows-1252 to start with. The legacy tables overlap so much that the bytes alone can't say which one was used, so you choose by eye. Below the preview, a hint says when the text still looks garbled.
Which encoding to try for each language
- Spanish, French, German, Italian, Portuguese, Dutch, Scandinavian
- Windows-1252, or ISO-8859-15
- Polish, Czech, Slovak, Hungarian, Croatian, Romanian
- Central European Windows-1250, or ISO-8859-2
- Russian, Ukrainian, Bulgarian, Serbian Cyrillic
- Windows-1251; very old Russian files may be KOI8-R
- Turkish
- Windows-1254, or ISO-8859-9
- Greek
- Windows-1253
- Hebrew
- Windows-1255
- Arabic and Persian
- Windows-1256, or ISO-8859-6
- Vietnamese
- Windows-1258
- Thai
- Windows-874
- Japanese
- Shift_JIS, or EUC-JP
- Korean
- EUC-KR (also covers CP949)
- Chinese, simplified
- GB18030, which also reads GBK and GB2312 files
- Chinese, traditional
- Big5
Decoding is done by your browser's built-in text decoder, which follows the web's Encoding Standard. One consequence: that standard treats the label ISO-8859-1 as Windows-1252, so those two options give the same preview. For Japanese files, the Japanese guide to subtitle mojibake walks through the Shift_JIS case in detail.
Repairing é damage: double encoding
Sometimes a UTF-8 file was opened in a program that read it as Windows-1252 and then saved it again. Every accented letter, stored as two bytes in UTF-8, has now become two separate characters, so é turns into é, an apostrophe ’ into ’, and Russian Привет into Привет. The file is valid UTF-8, just with the wrong characters in it, so choosing another encoding can't help.
The repair reverses one round of that damage: it maps each character back to the Windows-1252 byte it came from and reads those bytes as UTF-8 again. It keeps the result only when it contains fewer telltale pairs and replacement marks than before. Two cases stay as they are: a file that mixes damaged and clean lines, because a clean accented letter can't be mapped back, and the second layer of a file that was damaged twice.
What is kept and what changes
- Everything in the file stays: numbering, timecodes, italic tags, ASS styles and line breaks. The tool doesn't parse or re-time anything; it only rewrites the same text in UTF-8.
- A byte order mark already in the file is dropped and only added back if you tick the box.
- Letters that were replaced by plain question marks when someone saved the file in the wrong encoding are gone for good. If black-diamond replacement marks show under every encoding, the original letters were lost the same way.
Should the file have a BOM?
UTF-8 doesn't need a byte order mark, and many players never look for one. Some Windows programs, older TVs and media players use it to recognise UTF-8 and fall back to a regional encoding without it, while a few strict parsers show it as stray characters before the first subtitle. Save without it first; if your TV still shows garbled accents with the UTF-8 file, save again with the box ticked.
Problems an encoding change won't fix
- Empty boxes instead of letters usually mean the player's font has no characters for that script. The guide to subtitles showing strange characters matches each symptom to its cause, and the Hindi guide to boxes in subtitles covers Devanagari.
- Arabic, Persian or Hebrew punctuation landing at the wrong end of the line is a right-to-left display issue, not an encoding one. This tool doesn't add direction marks; a right-to-left mark (U+200F) at the start of each affected line is the usual fix, and the Arabic page on SRT right-to-left problems explains it in Arabic.
Limits
- One file at a time, up to 20 MB.
- Only UTF-8 and UTF-16 are detected automatically; legacy encodings are picked by you.
- The list has 23 encodings. Baltic Windows-1257, KOI8-U and ISO-2022-JP aren't in it.
- The output is always UTF-8; it can't save back into a legacy encoding.
- It changes how the text is stored, never the language. It doesn't translate.
Next steps
Other subtitle tools on this site read any non-UTF-8 file as Windows-1252 and point you here, so convert first. Then clean the file with the SDH remover, retime it with the subtitle frame rate converter, or open it with your video in the free subtitle editor to check the lines on screen and export SRT, VTT or an MP4 with the subtitles burned in.
More free tools
- ASS to SRT Converter
- SRT to ASS Converter
- SBV to SRT Converter
- TTML to SRT Converter
- SRT to TTML Converter
- SUB to SRT Converter for MicroDVD and SubViewer Files
- LRC to SRT Converter
- SRT to LRC Converter
- VTT to TXT: Turn WebVTT Captions into Plain Text
- TXT to SRT: Turn a Script into Timed Subtitles
- SRT to Word Converter
- SRT to Excel Converter
- Merge SRT Files (or Split One)
- Dual Subtitles Maker: Two Languages in One File
- Subtitle Frame Rate Converter: 23.976, 25, 29.97 and More
- Remove Hearing-Impaired Text from SRT Subtitles
Turn the file into text
Prefer one workspace for all mydubly tools? Open this tool in the dashboard · Browse every tool
Frequently asked questions
How do I know which encoding my subtitle file uses?
Unless it is UTF-8 or UTF-16, the file doesn't record it. Start with the encoding listed for the subtitle's language and keep the one where the preview reads naturally.
Why do ISO-8859-1 and Windows-1252 show exactly the same text?
Browsers follow the Encoding Standard, which decodes the ISO-8859-1 label with the Windows-1252 table. Windows-1252 is a superset for printable text, so nothing is lost either way.
Will saving as UTF-8 change my timings or formatting?
No. The text is rewritten byte for byte in UTF-8 and nothing is parsed, so numbering, timecodes, tags and ASS styles stay exactly as they were.
Can I fix é text in a file that is already UTF-8?
Yes. Leave the detected UTF-8 selected and keep the repair box ticked; the preview shows the repaired text if the damage can be reversed.
Can the tool save a file back to Windows-1256 or another old encoding?
No. It always saves UTF-8, which current players, editors and upload forms read.
My Lithuanian or Latvian subtitles still look wrong. Why?
Baltic Windows-1257 isn't one of the 23 encodings offered. A desktop text editor that lets you reopen a file in a chosen encoding and save it as UTF-8 can handle those files.