Como converter legendas em árabe para utf8 o caminho certo?

0

A maioria dos gravadores de DVD (se não todos) pedem que as legendas sejam codificadas no utf8, claro que é fácil

for file in *.srt; do
◀ iconv -f ISO-8859-1 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file"
◀ done

Isso é o que, mas agora as legendas em árabe são tudo menos arábicas, nem todas são em ISO-8859 , elas são ISO-8859-6 e algumas Arabic windows CP1256 (não sei qual é a codificação de cada arquivo, é também isto ou aquilo, não pode verificá-los todos um por um, levará uma vida inteira)

Como posso convertê-los para o utf8 enquanto ainda tenho legendas legíveis, eu vi poucos softwares para windows afirmando que eles podem fazer isso. E o Linux, eu não me importo se é um software ou um script bash

    
por Lynob 10.08.2014 / 23:27

1 resposta

0

Use o modo clássico de unix / linux e combine algumas ferramentas simples, por exemplo,

#!/bin/sh    
ls *.srt | while read file ; do
  charset='file -bi $file | sed 's/.*charset=//''
  echo '###' $file $charset
  case "$charset" in
     us-ascii) charset="";; # no conversion needed
     utf-8)    charset="";; # no conversion needed
     binary)   charset="";; # no charset detected
     *) ;;
  esac 
  if [ "$charset" != "" ] ; then
    iconv -f "$charset" -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file"
  fi
done

Teste a primeira correção de autodetecção sem iconv line.
Sugiro usar case para limitar a conversão a alguns conjuntos de caracteres explicitamente listados.

Formas alternativas de autodetecção de charset são fornecidas em link

    
por AnFi 11.08.2014 / 09:47