2014年10月07日

unzip の 6.10b BETA から CP932 に対応していたので,それのコンパイル方法をメモ書き.

Web拍手:


unzip の 6.10b BETA から CP932 に対応していたので,それのコンパイル方法をメモ書き.

「Info-ZIP project - Browse /unreleased Betas/UnZip betas at SourceForge.net」
http://sourceforge.net/projects/infozip/files/unreleased%20Betas/UnZip%20betas/


CP932 対応オプションはデフォルトでは有効になっていないので,USE_ICONV_MAPPING マクロを定義してコンパイルする必要があります.
どうするのが正しい方法なのかわからないけれど,私はこうしました.

$ make -f unix/Makefile LOC=-DUSE_ICONV_MAPPING generic_gcc

ちょっと試してみた範囲では,期待どおりに動作しました.かくにん! よかった.

noike@coffee $ unzip610b/unzip -l -O cp932 Prelude.zip
Archive: Prelude.zip
Length Date Time Name
--------- ---------- ----- ----
155 10-06-2014 17:06 META-INF/container.xml
33596 10-06-2014 17:06 太田胃散.xml
--------- -------
33751 2 files



-O cp932 オプションを付けないと,文字化けします.

noike@coffee $ unzip610b/unzip -l Prelude.zip
Archive: Prelude.zip
Length Date Time Name
--------- ---------- ----- ----
155 10-06-2014 17:06 META-INF/container.xml
33596 10-06-2014 17:06 хдкчФaшГГцХг.xml
--------- -------
33751 2 files



なお,yum でインストールされる unzip のバージョンは 6.00 で,CP932 非対応なので,次のようになってしまいます.
文字化け以前に,正しいファイル名を取得できていないので,nkf や convmv(iconv)などで後からファイル名を復元しようとしてもできません.

noike@coffee $ /usr/bin/unzip -l Prelude.zip
Archive: /t/homeold/Prelude.zip
Length Date Time Name
--------- ---------- ----- ----
155 10-06-2014 17:06 META-INF/container.xml
33596 10-06-2014 17:06 ????????????.xml
--------- -------
33751 2 files



なお,unar(unrar ではなく unar)を使うと,何も考えることなく正しく展開できるらしいのですが,

o yum でインストールできるリポジトリを見つけられなかった.
o ソースをコンパイルして unar コマンドを生成しようとしたけれども,Makefile の修正だけでは済まず,ソースをかなり修正しても満足に動作する unar コマンドを生成できなかった.
o Fedora20 からは yum でインストールできるらしい.ということは,CentOS/ Scientific Linux でも,そのうち yum でインストールできるようになるかも?

ということで,今回は unar の使用はあきらめました.


事の発端:
Windows 上で作られた,いわゆる日本語ファイル名を持つファイルを含んだ .zip ファイルを Linux 上で unzip で展開すると,ファイル名が化ける.
しかも,unzip が正しくファイル名を取り出せていないらしく,化けたファイル名に対して文字コード変換をかけても,元のファイル名が復元できない.
→ つまり,nkf や convmv(iconv) などでは元のファイル名に戻せない.

CP932 対応パッチを当てた unzip でなら正しく展開できる.

Ubuntu などに含まれている unzip には,CP932 対応パッチが当てられている.
CentOS / ScientificLinux などに含まれている unzip には,CP932 対応パッチが当てられていない.

CentOS / ScientificLinux 用に,CP932 パッチを当てた unzip を配布してくれている非公式リポジトリがあった!
「IKOINOBA YUM/APT repository - 憩いの場」
http://linux.ikoinoba.net/index.php?mode=page&aim=rpm_deb

いつの頃からか,リポジトリが提供されなくなってしまった.ふぇぇ.

(放置!)

unzip の 6.10b BETA から CP932 に対応していることを知る.
コンパイルして期待どおりに動いた.これを使おうー.


==

2014年10月07日
MusicXML to MP3 コンバータの 2.72.0 〜 2.76.0 までのバージョンで,主に圧縮 MusicXML ファイル(.MXL ファイル)に関連する不具合を直しました.
http://knoike.seesaa.net/article/406722265.html

2013年02月26日
「MusicXML to MP3 with ぼーか郎」で,主に audiveris(ProxyMusic) の出力する MusicXML に対応できるように,MusicXML 処理ルーチンのバグ取りを行いました.
http://knoike.seesaa.net/article/331955118.html


【コンピュータの最新記事】
posted by NOIKE at 22:43 | 東京 ☁ | Comment(0) | TrackBack(0) | コンピュータ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック