Melhor prática para substituir Chars desconhecidos de Charsets desconhecidos em nomes de arquivos? -- harset campo com rename camp askubuntu Relacionado O problema

Best practice to replace unknown chars from unknown charsets in filenames?


6
vote

problema

português

i.e. Eu tenho um arquivo chamado portrã¤t.pdf.

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

Digite a descrição da imagem aqui

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

english

i.e. i have a file called Portrxc3xa4t.pdf.

But the filename was created with a charsets which isn't properly shown in ubuntu like the following example.

enter image description here

What would be the best practice to rename such chars in filenames, when you have several filenames and you can't use this special char because of it's coding in terminal commands?

     

Lista de respostas

7
 
vote

Em teoria pode ser complicado saber a codificação de caracteres usada pelos arquivos, mas na maioria dos casos o erro vem de sistemas e programas do Windows ainda usando apenas Latin1 em vez de UTF-8. Executar ABCDEFGHIJKLMNABCDEFGHIJKLMN2 Sem Cotações Na Pasta Com os Arquivos Quebrados e experimente.

(você precisa convmv instalado)

 

In theory it can be tricky to know the character encoding used by the files, but in most cases the error comes from windows systems and programs still using just Latin1 instead of UTF-8. Run convmv -f cp850 -t utf-8 * without quotes in the folder with the broken files and have a try.

(You need convmv package installed)

 
 
2
 
vote

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

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

Isso substituiria cada personagem que não é apenas char, número ou traço com um sublinhado. Execute com o ABCDEFGHIJKLMNABCDEFGHIJKLMN5 opção para ver o que está acontecendo em uma corrida a seco.

 

If you just want to get rid of some characters, you could try this:

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

That would replace every character that is not just char, number or dash with an underscore. Run with the -n option to see what is happening in a dry-run.

 
 
0
 
vote

Eu acho que o sistema operacional moderno muitas vezes escolhe o UTF-8 para codificar nomes de arquivos. Nesse 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 do arquivo correto (por exemplo, "Porträt.pdf"), você precisa saber a codificação do nome do arquivo original primeiro, então você pode convertê-lo. Não é tão fácil "adivinhar" apenas uma vez que há uma enorme quantidade de codificações muito diferentes.

 

I guess that modern OSes often chooses UTF-8 for encoding file names. In this sense it's not a problem to have non-US characters in the file names. What you have experienced is probably the result of a file name which was created with non-UTF-8 encoding. It's quite hard to tell what you can do with that, it's also depends what you'd like. If you need the correct file name (for example "Portrxc3xa4t.pdf") you need to know the encoding of the original file name first, then you can convert it/them. It's not so easy to "guess" only since there are huge amount of very different encodings.

 
 
   
   

Perguntas relacionadas

6  Como ababar no próximo arquivo ao renomear?  ( How to tab to next file when renaming ) 
Se estou renomeando um monte de arquivos no Nautilus rapidamente, quando eu apertar entrar no arquivo saltos para o seu lugar adequado em ordem alfabética. Ma...

17  Renomear retorna "Beword não permitido" ao tentar minimizar as partes de vários nomes de arquivos  ( Rename returns bareword not allowed when trying to lowercase parts of multiple ) 
Eu tenho dois arquivos em uma pasta no meu Ubuntu 16.04: a1.dat b1.DAT Eu quero renomear b1.DAT para b1.dat então eu teria seguindo arquivos como r...

4  Arquivos a granel / renomeamento em lote com finais diferentes (não alteram as finais)  ( Bulk batch rename files with different endings not change the endings ) 
Meu problema, que tenho uma pasta com muitos arquivos diferentes como: xxxxxxxxx.avi yyyyyyy.jpg zzz.txt e eu quero renomeá-los em 001...

23  Renomeando vários arquivos adicionando uma string para o começo  ( Renaming multiple files by adding a string to the beginning ) 
por cerca de 200 arquivos em um diretório eu gostaria de adicionar a string 1_ para o início de todos os nomes de arquivos. Os nomes de arquivos são, por ...

0  Como marcar um álbum de compilação contém vários artistas em cada faixa?  ( How to tag a compilation album contains multiple artists on each track ) 
Eu tenho uma enorme coleção, atualmente minha música como esta: Música ├── Álbum 1. │ ├── faixa 1 (artista 1, artista 2) │ ├── faixa 2 (artista ...

0  Desativar a extensão automática do arquivo ao renomear arquivos?  ( Turn off automatic file extension when renaming files ) 
no Nautilus eu tentei renomear um arquivo .desktop, mas a unidade (ou é gnome? Eu suspeito que é unidade, mas por favor me corrija se eu estiver errado), em s...

21  Como faço para alterar o nome da área de trabalho no painel Unity?  ( How do i change the desktop name on the unity panel ) 
Como faço para alterar meu nome de desktop de ubuntu desktop para a área de trabalho xyz através do painel Unity? ...

5  Renomear arquivos numericamente (data / hora) [duplicado]  ( Rename files numerically date time order ) 
. Esta pergunta já tem respostas aqui : Como para a granizo renomear arquivos numericamente, em ordem...

0  Drive Mountpoint Automatic Renaming  ( Drive mountpoint automatic renaming ) 
o que está fazendo isso acontecer a cada poucos meses? Backintime: "Não é possível encontrar fotos instantâneas!" ...

13  Substitua todos os colons dos nomes de arquivos com terminal  ( Replace all colons from filenames with terminal ) 
Eu tenho um gb de música no meu disco rígido que foi formatado com ext4. Eu quero mover esses arquivos para uma partição HDD formatada por gordura. No entanto...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.