Batch converter para UTF-8 um diretório com arquivos UTF-8 e CP-1251

1

Eu tenho um diretório contendo arquivos, alguns deles são UTF-8, alguns são CP-1251. Eu quero converter os que são CP-1251 para serem UTF-8, mas sem corromper os arquivos UTF-8.

Eu tentei usar iconv -f cp1251 -t utf8 <...> , ele funciona para CP-1251, mas se o arquivo já é UTF-8, ele também é convertido e se torna incompreensível.

    
por sashoalm 04.01.2014 / 12:45

2 respostas

1

Eu encontrei uma maneira de fazer isso usando enconv :

enconv -L bulgarian -x utf8 file.txt

Funciona para arquivos UTF-8 e CP-1251.

    
por 04.01.2014 / 12:55
1

Você pode obter uma lista de arquivos que não são nem UTF-8 nem US-ASCII usando:

file -0 -i *.txt | awk -F '
file -0 -i *.txt | awk -F '%pre%' '$2 !~ /charset=(us-ascii|utf-8)$/ {print $1}'
' '$2 !~ /charset=(us-ascii|utf-8)$/ {print $1}'
    
por 04.01.2014 / 12:51