Como corrigir a codificação do nome do arquivo

5

Eu desmembrou um site com wget .

Esse site está em alemão e algumas dessas páginas tinham Ü, ü, Ö, ö, Ä, ä, ß na URL.

Agora, alguns arquivos têm um nome muito estranho.
Por exemplo, um arquivo é chamado mirror.de/�%9Cbersicht.html

Existe uma maneira de executar um comando que altere essa codificação estranha para uma adequada?

No caso de exemplo, eu esperaria o seguinte como um resultado válido mirror.de/Uebersicht.html

EDITAR: Saída de L C_CTYPE=C ls | grep bersicht.html | od -t x1 :

0000000 42 69 6e 61 72 79 20 66 69 6c 65 20 28 73 74 61 0000020 6e 64 61 72 64 20 69 6e 70 75 74 29 20 6d 61 74 0000040 63 68 65 73 0a 0000045

    
por Harrys Kavan 11.02.2016 / 13:19

1 resposta

4

Provavelmente, se você decodificar as codificações% XX de URI, receberá caracteres codificados em UTF-8. Em zsh :

autoload zmv
LC_ALL=C zmv '(**/)(*%*)' '$1${2//(#b)%(??)/${(#):-0x$match}}'

Se for observado por Gilles, esse caractere de substituição é para um byte 0xc3 (que em iso8859-1 é uma letra que explicaria porque não foi codificado em URI ao contrário de 0x9c que é inválido em iso8859-1) , então o comando acima mudaria o nome do seu arquivo para Übersicht.html

    
por 12.02.2016 / 00:08