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 🙂
Študent, sieťar, systemák. GNU/Linuxu sa venujem od 2009teho kedy som si začal robiť svoje prvé servery. V dnešnej dobe používam hlavne Debian a CentOS. So sieťami pracujem od roku 2015 a dodnes ma živia, preto som veľký zástanca kvalitných topológii, bezpečia v sieti a IPv6 samozrejme.