Prática recomendada para substituir chars desconhecidos de charsets desconhecidos em nomes de arquivos?

6

i.e. Eu tenho um arquivo chamado Porträt.pdf.

Mas o nome do arquivo foi criado com um charset que não é mostrado corretamente no Ubuntu como o exemplo a seguir.

Qual seria a melhor prática para renomear tais caracteres em nomes de arquivos, quando você tem vários nomes de arquivos e você não pode usar este caracter especial por causa de sua codificação em comandos de terminal?

    
por NES 11.02.2011 / 15:29

3 respostas

7

Em teoria, pode ser complicado saber a codificação de caracteres usada pelos arquivos, mas na maioria dos casos, o erro vem dos sistemas Windows e dos programas que ainda usam apenas o Latin1 em vez do UTF-8. Execute convmv -f cp850 -t utf-8 * sem aspas na pasta com os arquivos quebrados e tente.

(Você precisa do pacote convmv instalado)

    
por user11842 05.03.2011 / 00:54
1

Se você quiser apenas se livrar de alguns personagens, tente isso:

rename "s/[^A-Za-z0-9-_]/_/g"

Isso substituirá todos os caracteres que não sejam apenas char, number ou dash por um sublinhado. Corra com a opção -n para ver o que está acontecendo em um dry-run.

    
por Martin Ueding 11.08.2011 / 12:01
0

Eu acho que os sistemas operacionais modernos frequentemente escolhem o UTF-8 para codificar nomes de arquivos. Neste sentido, não é um problema ter caracteres não-americanos nos nomes dos arquivos. O que você experimentou é provavelmente o resultado de um nome de arquivo que foi criado com codificação não-UTF-8. É muito difícil dizer o que você pode fazer com isso, também depende do que você gostaria. Se você precisar do nome de arquivo correto (por exemplo, "Porträt.pdf"), primeiro você precisa saber a codificação do nome do arquivo original e, em seguida, convertê-lo. Não é tão fácil de "adivinhar" apenas uma vez que há uma enorme quantidade de codificações muito diferentes.

    
por LGB 11.02.2011 / 15:34