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

Re: Acentuação em nome de arquivos



2009/3/14 Welington R. Braga <welrbraga@gmail.com>:
> Acredito que o charset original no antigo kurumin era o ISO8859-1.
> Como atualmente suas aplicações estão trabalhando com UTF-8 você está
> passando por este problema.
>
> Segundo a página do manual do comando mount não há qualquer menção a
> possibilidade de forçar o charset no sistema de arquivos, ao contrário
> do que ocorre com o FAT, NTFS, JFS ISO9660 entre outros, então de três
> possibilidades, escolha uma:
>
> 1 - Você converte os nomes de arquivos manualmente (ou de uma vez só
> usando um script) ou por demanda
> 2 - muda o charset  do seu sistema
> 3 - Deixa como está
>
> Quando ocorreu isso comigo eu fiquei com a primeira hipótese, já que
> não conhecia o comando iconv (util para fazer o script.
>
> Se quiser partir para o script pode fazer algo assim:
>
> $ for ARQ in *; do mv "${ARQ}" "`echo ${ARQ}|iconv -f iso8859-1 -t utf-8`"; done
>
> Execute esta linha de comando a partir do diretório contendo os
> arquivos que estão com os nomes apresentados erroneamente.
>
> veja que estou considerado que os arquivos estão acentuados como
> iso8859-1 e estou convertendo para utf-8. Para saber qual é a
> codificação atual do seu ssitema vocẽ pode fazer assim:
>
> $ ls|file -
>
> Veja que isto só verificará a codificação dos arquivos no diretório
> atual, também. De posse do tipo certo você poderá colocar o charset
> apresentado no parâmetro "-f" do iconv.
>
> O caminho é por ai. fica como exercício, se quiser incrementar mais
> para que ele possa descer 300 níveis de diretórios e subdiretórios.
>
>

Ok, um simples ...

# convmv -r -f ISO-8859-1 -t UTF-8 * --notest

.. no diretório já foi suficiente para resolver meus problemas.

Esse é um script em Perl que faz o mesmo serviço do iconv, mas altera
também a codificação de diretórios, além de suportar modo recurso.
Isso poupa todo o trabalho de listar os arquivos e passar o comando
com o xargs.

Funcionou, rápido e eficaz!

Achei essa referência aqui[1] bacana.

Muito obrigado pela ajuda, e pela explicação esclarecedora. Pra quem
precisar, fica aí a dica.

[1] http://salamand.wordpress.com/2008/09/01/mudar-locale-do-usuario-para-iso8859-1/


Reply to: