shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Detectar codificação de texto


From: Tiago Peczenyj
Subject: Re: [shell-script] Detectar codificação de texto
Date: Thu, 5 Feb 2015 18:27:04 -0200

digamos que vc só tenha iso e utf8. vc quer converter utf8 para iso:

$ ls
arquivo.iso  arquivo.utf8

$ file -i *
arquivo.iso:  text/plain; charset=iso-8859-1
arquivo.utf8: text/plain; charset=utf-8

$ for i in *; do grep -q iso <<< $(file -i $i) && echo "$i ok" || echo "$i nok"; done
arquivo.iso ok
arquivo.utf8 nok

$ for i in *; do 
   grep -q iso <<< $(file -i $i) || iconv -f utf8 -t iso8859-1 $i > ${i}.FIXED
done

$ ls 
arquivo.iso  arquivo.utf8  arquivo.utf8.FIXED

$ file -i *
arquivo.iso:        text/plain; charset=iso-8859-1
arquivo.utf8:       text/plain; charset=utf-8
arquivo.utf8.FIXED: text/plain; charset=iso-8859-1


2015-02-05 18:11 GMT-02:00 Robson Alexandre address@hidden [shell-script] <address@hidden>:
 

Boa tarde a todos,

estou com uma lista de arquivos gerada pelo find onde alguns arquivos tem sua nomenclatura em ISO8859 e outros em UTF8. Como exemplo as duas linhas correspondentes estão neste arquivo:
Preserva��o de Material de Informatica.pdf
Preservação de Material de Informatica.pdf

Gostaria de saber uma forma de identificar o encoding das strings, ou das linhas do arquivo para saber quais arquivos estão com sua codificação errada.
Tentei o file -i sem sucesso.
Mas se criar um arquivo temporário com a linha, o file -i resulta:

Preserva��o de Material de Informatica.pdf
text/plain; charset=iso-8859-1

E com a linha na codificação correta
Preservação de Material de Informatica.pdf
text/plain; charset=utf-8

Tentei um cat -A nessas linhas que resultaram:
PreservaM-gM-co de Material de Informatica.pdf$
PreservaM-CM-'M-CM-#o de Material de Informatica.pdf$

onde tentei filtrar os caracteres de controle [[:cntrl:]], os não imprimíveis [^[:print:]], mas sem resposta ao filtro.
Se eu uso o 'iconv -f latin1 -t utf8' ele acaba convertendo tudo, inclusive o que já está em UTF8.

Alguém poderia dar alguma dica?


Atenciosamente
Robson Alexandre




--
Tiago B. Peczenyj

http://about.me/peczenyj

reply via email to

[Prev in Thread] Current Thread [Next in Thread]