Filnya tidak rusak, yang salah cara membacanya
Yang tersimpan di file subtitle adalah byte. Untuk mengubah byte menjadi karakter, harus diketahui encoding apa yang dipakai saat menulisnya — kalau langkah ini salah, yang keluar adalah karakter berantakan. Filenya tidak kehilangan satu byte pun; baca ulang dengan encoding lain, karakternya kembali.
Jadi ada dua urusan terpisah: mengenali encoding aslinya, dan menyimpan dengan encoding yang dikenali pemutar. Yang pertama lewat skor pencobaan pembacaan, yang kedua lewat simpan sebagai. Keduanya memperbaiki masalah yang berbeda.
Lima rupa, lima penyebab
Karakter berantakan tidak tumbuh acak; rupanya membocorkan penyebabnya:
- Kumpulan huruf beraksen (`ä½ å¥½`): teks CJK UTF-8 dibaca sebagai encoding satu byte — dalam UTF-8 satu karakter CJK tiga byte, dan dibaca per byte masing-masing jadi satu huruf
- Deretan karakter CJK tanpa satu pun yang umum: UTF-8 dibaca sebagai GBK — byte dikelompokkan ulang berpasangan dan tiap pasangan mendarat di karakter langka
- Tumpukan simbol mata uang dan matematika: byte mendarat di area simbol, biasa terjadi kalau dibaca sebagai Mac Roman atau turunan Latin-1
- Karakter kontrol ikut masuk: byte masuk ke area kontrol tak terlihat, di layar tampil sebagai spasi kosong atau kotak
- Tanda tanya kotak `�`: ini karakter pengganti, bukan karakter berantakan — artinya "di sini tadinya ada karakter, tapi sudah hilang saat dibaca"

Kenapa karakter pengganti tidak bisa diperbaiki
Karakter pengganti adalah garis batasnya. Munculnya `�` berarti byte sudah dibuang pada langkah yang lebih awal (biasanya ada program yang membaca lalu menyimpan ulang), dan bagian yang dibuang tidak tercatat sedikit pun. Saat itu tidak ada dasar untuk menebak mundur — siapa pun tidak bisa memperbaikinya.
Karena itu halaman perbaikan menangani dua keadaan berbeda: unggah file dan byte aslinya masih utuh, sehingga bisa dicoba encoding demi encoding; kalau teks yang ditempel sudah berisi karakter pengganti, akan dikatakan terus terang "tidak bisa diperbaiki, unggah file aslinya".
Ada juga keadaan sebaliknya: isinya terbaca benar-benar normal, tapi di pemutar tetap berantakan. Ini bukan salah file, melainkan pemutar yang salah encoding. Mengubah file tidak ada gunanya; simpan satu salinan UTF-8 dengan BOM atau GBK dan berikan itu.

Saat memperbaiki, apa yang dibandingkan
Alat mencoba setiap encoding yang mungkin, lalu memberi skor pada tiap hasil: berapa proporsi karakter umum, ada tidak deretan huruf beraksen, ada tidak deretan simbol, apakah karakter CJK-nya deretan langka. Yang skornya tertinggi ada di paling atas.
Kalau skornya tidak jelas lebih baik, tidak direkomendasikan — lebih baik diberi tahu "yang ini terbaca normal" daripada diberi hasil yang cuma sedikit mirip bahasa manusia. Yang salah dua kali berturut-turut akan ditebak mundur satu lapis lagi untuk beberapa kandidat teratas.

Menyimpan dengan encoding yang benar baru selesai
Teks yang sudah diperbaiki masih harus disimpan dengan encoding yang dikenali pemutar. Pemutar di Windows sering mengenali encoding dari BOM, jadi menyimpan UTF-8 dengan BOM paling praktis; perangkat lama atau pemutar buatan dalam negeri mengenali GBK. Pilihan encoding: UTF-8, UTF-8 (dengan BOM), GBK, Big5, Shift_JIS, EUC-KR; kalau tidak muat akan diminta ganti (misalnya GBK tidak muat untuk teks Korea).

Alat dan panduan terkait
Langkah lengkapnya lihat Cara memperbaiki subtitle berantakan; apa sebenarnya yang tersimpan di file SRT lihat Apa yang tertulis di file SRT; encoding normal tapi isinya kotor (watermark iklan, penanda untuk tunarungu) pakai Pembersihan subtitle.