Fișierul nu e distrus, a fost citit greșit
În fișierul de subtitrări sunt stocați octeți. Ca octeții să devină caractere, trebuie să știi în ce codificare au fost scriși – dacă alegerea asta merge prost, rezultatul sunt caractere stricate. Din fișier nu lipsește niciun octet: citește-l cu altă codificare și caracterele vin înapoi.
Deci în caracterele stricate sunt două lucruri: să recunoști în ce codificare au fost scrise și să salvezi într-o codificare pe care playerul o recunoaște. Primul se face prin citire de probă și punctaj, al doilea prin salvare. Rezolvă probleme diferite.
Cinci înfățișări, cinci cauze
Caracterele stricate nu apar la întâmplare – înfățișarea lor trădează direct cauza:
- Litere cu diacritice în șir (`ä½ å¥½`): chineza din UTF-8 a fost citită ca și cum ar fi o codificare pe un octet – în UTF-8 chineza are trei octeți pe caracter, iar citirea pe un octet ia fiecare octet drept literă separată
- Caractere chinezești în șir fără niciun caracter comun (`浣犲ソ`): UTF-8 a fost citit ca GBK – octeții au fost reîmperecheați câte doi și au ieșit caractere rare
- Simboluri de monedă și simboluri matematice: octeții au căzut în zona de simboluri, obișnuit când fișierul e citit ca Mac Roman sau Latin-1
- Caractere de control amestecate: octeții au căzut în zona invizibilă de control, pe ecran apar ca spații sau pătrate
- Semnul de întrebare pătrat `�`: acesta e caracterul de înlocuire, nu text stricat – spune că aici era un caracter care a fost pierdut deja la citire

De ce caracterul de înlocuire nu se poate repara
Caracterul de înlocuire e linia critică. Când apare `�`, octeții au fost pierduți la un pas anterior (de obicei vreun program a citit fișierul și l-a salvat din nou), iar despre partea pierdută nu există nicio înregistrare. Atunci deducerea inversă n-are pe ce să se sprijine – nimeni nu-l mai aduce înapoi.
De asta pagina de reparare tratează două situații în mod diferit: când trimiți fișierul octeții originali sunt acolo și se pot încerca toate codificările; dacă în conținutul lipit apare deja caracterul de înlocuire, se spune direct că nu se poate repara și se cere fișierul original.
Și invers, o situație care merită notată: conținutul se citește perfect normal, dar în player tot apar caractere stricate. Nu e vina fișierului, ci playerul a ales o codificare greșită. Să modifici fișierul nu ajută – salvează o copie ca UTF-8 cu BOM sau GBK și dă-i-o.

Ce se compară la reparare
Unealta încearcă fiecare codificare posibilă și dă fiecărui rezultat un punctaj: câte caractere comune sunt, sunt șiruri de diacritice, sunt șiruri de simboluri, sunt caracterele chinezești rare și în blocuri. Rezultatul cu cel mai mare punctaj stă primul.
Dacă punctajul nu e clar mai bun, nu se recomandă nimic – mai degrabă spune că ăsta se citește normal decât să dea un rezultat forțat. Pentru cele stricate de două ori se mai deduce un strat înapoi.

Numai codificarea potrivită încheie treaba
Textul reparat trebuie salvat într-o codificare pe care playerul o recunoaște. Playerele de Windows recunosc de obicei codificarea după BOM, așa că UTF-8 cu BOM e cel mai simplu; aparatele vechi și playerele chinezești recunosc GBK. Opțiunile sunt UTF-8, UTF-8 (cu BOM), GBK, Big5, Shift_JIS, EUC-KR; dacă nu încape, se propune alta.

Instrumente și ghiduri asociate
Întregul proces pe pagina Cum folosești repararea caracterelor stricate; ce conține de fapt un fișier SRT pe pagina Ce scrie într-un fișier SRT; dacă codificarea e bună dar conținutul e murdar (filigrane, reclame, note pentru surzi) folosește Curățarea subtitrărilor.