CONVMV e nomes de arquivos cirílicos

3

Eu estou tentando converter nomes de arquivos em russo zipfile para UTF-8 usando convmv. Nome do arquivo original: "æ'á¡¿½∞¡δ¼ áα« ¼áΓ «¼.jpg" (æ \ ¿¿¿½∞¡δ¼ \ áα «¼áΓ« ¼.jpg com barras)

Este analisador ( link ) detectou a codificação de origem CP866 + exibida como CP437 e decodificou com êxito para o desejado С ванильным ароматом .jpg

Minha pergunta é: como posso configurar convmv para decodificá-lo corretamente? Para convmv -f cp866 -t utf-8 filename , eu recebo "já UTF-8", no modo --nosmart fico irritado.

    
por Adam Plšek 08.09.2018 / 19:20

1 resposta

2

Uma única passagem de convmv só pode corrigir um nível de errado de cada vez. Seu arquivo particular é mais complicado. Foi originalmente cp866, e foi em algum momento transformado em UTF-8, mas o que fez essa conversão pensei que era originalmente cp437 e assim convertido errado. Para corrigir isso, você precisa executar convmv duas vezes:

convmv -f utf-8 -t cp437 --notest 'æ óá¡¿½∞¡δ¼ áα«¼áΓ«¼.jpg'
convmv -f cp866 -t utf-8 --notest $'\x91 \xa2\xa0\xad\xa8\xab\xec\xad\xeb\xac \xa0\xe0\xae\xac\xa0\xe2\xae\xac.jpg'

Note que eu tive que escapar do nome no segundo comando. Se você estiver executando isso em massa e / ou não quiser lidar com isso, use algo como *.jpg ou coloque todos os arquivos afetados em seu próprio diretório e use a opção -r para convmv .

    
por 08.09.2018 / 21:05