[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Conversão de nome de arquivos.
From: |
Marcelo Andrade |
Subject: |
Re: [shell-script] Conversão de nome de arquivos. |
Date: |
Wed, 11 Jan 2012 08:45:23 -0300 |
On Tuesday, January 10, 2012, Alysson Gonçalves de Azevedo wrote:
>
> Pessoal, a muito tempo eu tenho pelejado com o seguinte problema.
> Eu costumo baixar muitos arquivos compactados, e sempre que algum arquivo
> dentro dos .rar tem algum caracter especial, seja ç ou alguma letra
> acentuada, quando eu extraio esse arquivo, ele vem com codificação
> inválida.
>
> por exemplo, descompactar, o arquivo aparece assim no nautilus
> "Continua��o.jpg (codificação inválida)", e no terminal "Continua??o.jpg".
> Até hj eu estive corrigindo tudo manualmente... Mas agora eu criei vergonha
> na cara e decidi montar um script para resolver isso.
>
> Com base nesse artigo<
> http://www.vivaolinux.com.br/dica/Renomeando-arquivos-Codificacao-Invalida-e-um-Bonus
> >e
> nesse
> outro <http://blog.welrbraga.eti.br/?p=440>, eu consegui fazer aparecer o
> meu script no menu do contexto e ao clicar, ele corrigi tudo.
> Segue o código (também postado no pastbin <http://pastebin.com/Ybn63QBN>):
>
> > #!/bin/bash
> > OLDIFS=${IFS}
> > IFS="
> > "
> > for arquivo in ${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}; do
> > convmv -r -f cp850 -t utf8 --notest $arquivo
> > done
> > IFS=${OLDIFS}
>
Parabéns e obrigado por contribuir!
> Até agora ele tem funcionado bem, mas tem uma coisa que eu me pergunto...
> No scritp, eu to usando o cp850 como codificação base.
> Mas isso é certo? Não tenho certeza se sempre será ele ou se pode acontecer
> de ter win1252 ou iso8859-1.
>
> Pelo que vi, o comando "file -i arquivo" retorna o charset para arquivos
> textos, mas para arquivos tipo imagens, retorna "charset=binary".
> Alguém sabe me confirmar se está tudo bem deixar cp850... ou melhor, uma
> forma de detectar a codificação do arquivo automaticamente?
>
Detectar a codificação? Desconheço que exista uma maneira confiável
de fazer isso, até por que, salvo engano, a cp850 é compatível com a
win1252 e para uma detecção acurada o arquivo provavelmente teria
que ter todo o conjunto de caracteres suportado.
Pesquisando agora, vi que em PHP tem um método mb_detect_encoding
(http://us3.php.net/manual/en/function.mb-detect-encoding.php) que diz
qual o encoding mais próximo dentro de uma lista de opções. Você poderia
utilizar PHP em shell usando o shebang /usr/bin/php.
Boa sorte!
--
MARCELO F ANDRADE
Belem, Amazonia, Brazil
"I took the red pill"
[As partes desta mensagem que não continham texto foram removidas]
- Conversão de nome de arquivos., Alysson Gonçalves de Azevedo, 2012/01/10
- Re: [shell-script] Conversão de nome de arquivos.,
Marcelo Andrade <=
- Re: [shell-script] [MODERAÇÃO] Conversão de nome de arquivos., MrBiTs, 2012/01/11
- Re: [shell-script] [MODERAÇÃO] Conversão de nome de arquivos., Tiago Peczenyj, 2012/01/11
- Re: [shell-script] [MODERAÇÃO] Conversão de nome de arquivos., Alysson Gonçalves de Azevedo, 2012/01/11
- Re: [shell-script] [MODERAÇÃO] Conversão de nome de arquivos., Tiago Peczenyj, 2012/01/11
- Re: [shell-script] [MODERAÇÃO] Conversão de nome de arquivos., Alysson Gonçalves de Azevedo, 2012/01/11
- Re: [shell-script] Conversão de nome de arquivos., Marcelo Andrade, 2012/01/11
- Re: [shell-script] Conversão de nome de arquivos., Alysson Gonçalves de Azevedo, 2012/01/11
- Re: [shell-script] Conversão de nome de arquivos., Rafael Schmidt, 2012/01/11
- Re: [shell-script] Conversão de nome de arquivos., Alysson Gonçalves de Azevedo, 2012/01/11
- Re: [shell-script] Conversão de nome de arquivos., Tiago Peczenyj, 2012/01/11