web-dev-qa-db-ja.com

Linuxでフォルダ名またはファイル名として非ASCII文字を含むrarアーカイブからファイルを正しく抽出する方法

Rarを使用してアーカイブを一覧表示/抽出しましたが、非ASCII文字が判読不能な単語になりました。

7zは、フォルダー名/ファイル名を読み取り可能な文字でリストできますが、7zは、rarアーカイブを抽出するときにサポートされていないメソッドエラーを示しました。

2
Kane

unrarの代わりにrarを使用します。

この回答は@ Ignaciovazquez-Abramsからのものです。

1
Kane

私は同じ問題を抱えて、いくらか複雑な解決策を考え出しました。unrarやhexedit(または同じ機能を持つ他のプログラム)などのいくつかのプログラムをインストールしてから、抽出を実行する簡単なbashスクリプトを作成する必要があります。 、私の場合、そのようなスクリプトの内容は次のとおりです。

#!/bin/bash
unrar e -v diccionario-arabe-espanol.rar "Diccionario Arabe espaNol.pdf"

ここで、抽出したいファイルの実際の名前を「ASCIIバージョン」に置き換えました。ここで、á(アクセント付きa:ASCII 16進コードA0)およびñ(tilde-n: ASCIIコードA4)は、他のASCII文字(マルチバイトUTF-8文字でエディターによって置き換えられない文字)に置き換えられました。興味のあるファイルの名前を確認するために、hexeditを使用してファイルヘッダーを見つけることができます。16進セクションに、厄介な文字に使用されているコードが表示されます。

スクリプトを保存し、通常どおりアクセス許可を変更してから、hexedit(または選択した2進または16進エディター)で編集し、それに応じて抽出されるファイル名の文字を変更します。つまり、私の例では、Aが表示されている場所で置き換えます。それを16進コードA0に置き換え、「espaNol」のNを16進コードA4に置き換え、保存して実行します。これでファイルが抽出され、私のシステム(linux Ubuntu 9.10)ではunrarバージョン(UNRAR 4.00ベータ3フリーウェア)は、UTF-8に適切に変換された名前で抽出されたファイルを作成しました

将来的には、上記のすべての手順を自動的に実行する別のスクリプトを作成します。それがあなたのためにうんざりすることを願っています。

1
艾也白