Frequentemente encontro arquivos de texto (como arquivos de legenda em meu idioma nativo, persa ) com problemas de codificação de caracteres. Esses arquivos são criados no Windows e salvos com uma codificação inadequada (parece ANSI), que parece sem sentido e ilegível, assim:
No Windows, é possível corrigir isso facilmente usando o Notepad ++ para converter a codificação em UTF-8, como abaixo:
E o resultado legível correto é assim:
Eu procurei muito por uma solução semelhante no GNU / Linux, mas infelizmente as soluções sugeridas (por exemplo, esta pergunta ) não funcionam. Acima de tudo, eu vi pessoas sugerem iconv
e recode
mas eu não tive nenhuma sorte com essas ferramentas. Eu testei muitos comandos, incluindo os seguintes, e todos falharam:
$ recode ISO-8859-15..UTF8 file.txt
$ iconv -f ISO8859-15 -t UTF-8 file.txt > out.txt
$ iconv -f WINDOWS-1252 -t UTF-8 file.txt > out.txt
Nada disso funcionou!
Estou usando o Ubuntu-14.04 e estou procurando uma solução simples (GUI ou CLI) que funcione exatamente como o Notepad ++.
Um aspecto importante de ser "simples" é que o usuário não precisa determinar a codificação de origem; em vez disso, a codificação de origem deve ser detectada automaticamente pela ferramenta e apenas a codificação de destino deve ser fornecida pelo usuário. No entanto, também ficarei feliz em saber sobre uma solução funcional que requer que a codificação de origem seja fornecida.
Se alguém precisar de um caso de teste para examinar soluções diferentes, o exemplo acima pode ser acessado através deste link .
iso-639
mas isso não parece estar disponível em um iconv
ou em outro recode
. Pelo menos, não vejo isso na saída de iconv -l
.
vim
mas ela não funcionou.
vim '+set fileencoding=utf-8' '+wq' file.txt
.