ファイル名のエンコーディングを変更する方法

ファイル名のエンコーディングを変更する方法

ウェブサイトを放棄しましたwget

ウェブサイトはドイツ語で、一部のページのURLにはÜ、ü、Ö、ö、ä、ä、ßが含まれています。

今、いくつかのファイルの名前が非常に奇妙になりました。
例えば、mirror.de/�%9Cbersicht.html

奇妙なエンコーディングを正しいエンコーディングに変更するコマンドを実行する方法はありますか?

例では、以下が有効な結果になると期待します。mirror.de/Uebersicht.html

編集: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

ベストアンサー1

%XX URIエンコーディングのみをデコードすると、UTF-8でエンコードされた文字を取得する可能性が高くなります。存在するzsh

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

Gillesが指摘したように、代替文字が0xc3バイトに使用されている場合(iso8859-1の文字としてiso8859-1で無効な0x9cと異なりURIでエンコードされていない理由を説明します)、上記のコマンドはファイル名を次に示しますに変更します。Übersicht.html

おすすめ記事