Opravujeme titulky v Linuxe: Kódovanie

Určite to poznáte, máte skvelý film/seriál. Máte k nemu titulky v češtine/slovenčine. Usadíte sa, otvoríte si nejaký dobrý alkoholický/nealkoholický nápoj, pustíte film a s výrazom zdesenia sledujete titulky. V dnešnej dobe sa už väčšina zariadení a editorov od základu používa univerzálne kódovanie UTF-8, v minulosti to ale nebolo vždy také jasné. Každý systém používal vlastné kódovanie a existovalo mnoho kódovaní ktoré neboli medzi sebou úplne kompatibilné. V česku/slovensku to bolo najčastejšie kódovanie Windows-1250 a ISO 8859-2. Najprv sa pozrieme ako identifikovať vadné titulky.

Väčšina návodov na internete vás hneď odkáže na použitie príkazu file -i a aby ste si nastavili kódovanie v prehrávači. Tak to skúsme

$ file -i "The-Greatest-Show-In-the-Galaxy---Part-1.srt" 
The-Greatest-Show-In-the-Galaxy---Part-1.srt: text/plain; charset=unknown-8bit

Bohužiaľ, tu sme moc úspešne nepochodili, utilita file nedokázala detekovať kódovanie. Tak nezostáva nám teraz nič iné ako skonvertovať súbor do UTF-8. Menší ťahák, ako som vyššie spomínal, česko a slovensko väčšinou používalo kódovanie Windows-1250 a ISO 8859-2. Ďalšia pomôcka je že kódovanie ISO 8859-2 dokáže utilita file detekovať

$ file -i new.srt 
new.srt: text/plain; charset=iso-8859-1

Takže týmto sme si potvrdili že súbor je naozaj v kódovaní Windows-1250. Teraz nám ho stačí už len skonvertovať na UTF-8. To môžeme urobiť pomocou iconv.

iconv -f Windows-1250 -t UTF8 'Originalny_subor.srt' > 'Opraveny_subor_v_UTF8.srt'

Následne už odtestujeme titulky či sú správne a zistíme že všetko v poriadku prešlo a znaky v titulkách sú správne.

Príjemne si užite váš film s dobrými titulkami 🙂

Leave a Reply