Fix it now
Open the Subtitle Encoding Fixer, choose the garbled file, preview the candidate decodings, and pick the one that reads as correct Chinese. Open the Subtitle Encoding Fixer
Why GBK subtitles turn garbled
GBK, and its older subset GB2312, were the standard ways to store Simplified Chinese text before UTF-8 took over. In GBK, ASCII characters such as digits and punctuation take one byte, and each Chinese character takes two bytes. UTF-8 uses a different byte pattern for Chinese characters, so when a player assumes a GBK file is UTF-8, it reads those two-byte sequences as the wrong characters. The result is the classic mojibake: the Chinese turns into a string of accented Latin letters, symbols, and question marks, while the rest of the file still looks fine.
That last detail is the best diagnostic clue. If the timestamps, cue numbers, and punctuation look normal and only the Chinese text is scrambled, the file is almost certainly in a legacy encoding, not corrupted. A truly damaged file would garble everything, including the timing lines.
How to tell a file is GBK
Work through this checklist before you change anything:
- The file came from an older Chinese subtitling tool, or was downloaded from a Chinese subtitle site. Files made by modern editors are usually UTF-8 already.
- Only the Chinese text is garbled. Digits, timestamps, and punctuation are intact, because those bytes are identical in GBK and UTF-8.
- Decoding the file as GBK or GB18030 in the preview restores readable Chinese. If the GBK preview reads correctly, that is the answer, no matter what any automatic detector guessed.
- The file has no UTF-8 byte order mark. A file starting with the BOM bytes is UTF-8, so a garbled file with a BOM points to a different problem, such as double-encoding.
Automatic detection is unreliable on short files, because a few lines of text are not enough evidence to choose between encodings. Previewing the candidates and reading them yourself is more reliable than any guess, which is why the fixer shows you every candidate instead of silently picking one.
How to fix a garbled GBK subtitle file
- Open the Subtitle Encoding Fixer and choose the garbled file, then preview the candidate decodings and compare their first lines.
- Pick the GBK or GB18030 candidate whose first lines read as correct Chinese, then download the result as UTF-8.
- Keep the original file unchanged, so you can try a different decoding if the first pick turns out to be wrong.
- If the text still looks wrong after a GBK decode, try the double-encoding repair, which handles files that were read as one encoding and re-saved as another.
Decoding only changes how character bytes are interpreted. It never touches the timestamps, cue numbers, or line breaks, so the fixed file stays in sync with the same video.
When a GBK file cannot be fixed
Some damage is permanent. If the file contains the replacement character �, those bytes were already thrown away by an earlier program that decoded the file wrongly and saved the result. The original characters are gone from that copy, and no decoding can bring them back. The only fix is to get the original file again before it was re-saved.
A second trap is double-encoding: a UTF-8 file that was once read as Windows-1252 and re-saved as UTF-8. Decoding that file as GBK will not help, because the bytes were scrambled twice. The fixer has a separate double-encoding repair for exactly this case, so try it before giving up.
A third case is a mixed file, where some cues are GBK and others are already UTF-8. No single decoding fixes both halves at once. In that case, split the file by section if you can, fix each part separately, or re-download a clean copy.
Common questions
Is GBK the same as GB2312 and GB18030? GB2312 is the oldest of the three, GBK extends it with more characters, and GB18030 is a superset that covers both. Decoding a GBK or GB2312 file as GB18030 gives the same characters in practice, so picking the GB18030 candidate is safe.
Will fixing the encoding change the timestamps? No. Decoding only changes how character bytes are read. The timestamps, cue numbers, and line breaks stay exactly as they were, so the fixed file stays in sync with the video.
Related tools
Subtitle Encoding Fixer · CJK Subtitle Checker · SRT to WebVTT Converter