Il file non è danneggiato, è la lettura a essere sbagliata
In un file di sottotitoli sono memorizzati dei byte. Per trasformare i byte in caratteri bisogna sapere con quale codifica sono stati scritti — se questo passaggio è sbagliato, il risultato sono caratteri illeggibili. Il file non ha perso un solo byte: basta rileggerlo con un'altra codifica e i caratteri tornano.
Quindi ci sono due cose distinte: riconoscere la codifica originale, e salvare in una codifica che il lettore riconosca. La prima si fa provando a leggere e assegnando un punteggio, la seconda con "Salva come". Le due cose risolvono problemi diversi.
Cinque forme, cinque cause
I caratteri illeggibili non nascono a caso: la loro forma rivela la causa:
- Lettere accentate a raffica (`ä½ å¥½`): testo cinese UTF-8 letto come se fosse a byte singolo — in UTF-8 un carattere cinese occupa tre byte, e leggendo un byte alla volta ogni byte diventa una lettera a sé
- Caratteri CJK uno dietro l'altro senza uno solo comune: UTF-8 letto come GBK — i byte vengono riappaiati a due a due e ogni coppia finisce su un carattere raro
- Una montagna di simboli di valuta e simboli matematici: i byte sono finiti nella zona dei simboli, tipico di una lettura come Mac Roman o della famiglia Latin-1
- Caratteri di controllo infiltrati: i byte sono finiti nella zona di controllo invisibile, e sullo schermo compaiono spazi vuoti o riquadri
- Il punto interrogativo nel riquadro `�`: questo è il carattere di sostituzione, non un carattere illeggibile — significa "qui c'era un carattere, ed è già andato perso durante la lettura"

Perché il carattere di sostituzione non si ripara
Il carattere di sostituzione è la linea di confine. La presenza di `�` significa che i byte sono stati buttati via in un passaggio precedente (di solito un programma che ha letto e poi risalvato), e della parte persa non è rimasta traccia. A quel punto non c'è nulla da cui risalire — nessuno può ripararlo.
Per questo la pagina di riparazione gestisce due situazioni in modo diverso: se carichi un file i byte originali sono intatti e si può provare una codifica alla volta; se il testo incollato contiene già il carattere di sostituzione, dice chiaramente "non si può riparare, carica il file originale".
C'è anche il caso inverso: il contenuto si legge perfettamente, ma nel lettore si vedono ancora caratteri strani. Non è colpa del file, è il lettore che ha scelto la codifica sbagliata. Modificare il file non serve: salva una copia in UTF-8 con BOM o GBK e dagli quella.

Cosa si confronta durante la riparazione
Lo strumento prova ogni codifica possibile, poi assegna un punteggio a ogni risultato: quanti caratteri comuni, se ci sono sequenze di accenti, se ci sono sequenze di simboli, se i caratteri CJK sono una fila di rari. Il punteggio più alto sta in cima.
Se il punteggio non è chiaramente migliore, non viene proposto nulla — meglio dirti "questo si legge normalmente" che rifilarti un risultato che assomiglia a una lingua solo per modo di dire. Nei casi sbagliati due volte, sulle prime proposte si risale a ritroso di un altro livello.

Si conclude solo salvando con la codifica giusta
Il testo riparato va salvato in una codifica che il lettore riconosca. I lettori su Windows riconoscono spesso la codifica dal BOM, quindi salvare in UTF-8 con BOM è la strada più comoda; i dispositivi vecchi o i lettori locali riconoscono GBK. Codifiche disponibili: UTF-8, UTF-8 (con BOM), GBK, Big5, Shift_JIS, EUC-KR; se non ci sta, viene chiesto di cambiare (per esempio GBK non contiene il coreano).

Strumenti e guide correlati
La procedura completa è in Come riparare i caratteri illeggibili; cosa c'è davvero dentro un file SRT è in Cosa c'è scritto in un file SRT; codifica a posto ma contenuto sporco (filigrane pubblicitarie, indicazioni per non udenti) usa Pulizia dei sottotitoli.