師走の某日、abstract.zip という zip ファイルを展開しようとしたら
"abstract.zip"を"work"に展開できません。 (エラー22 - 引数が無効です。) |
ネットで検索すると、Catalina の問題みたい? 試しに El Capitan でやったら問題なく処理された。
unzip でやれば良いだろう、と思ってやってみたら。
$ unzip abstract.zip checkdir error: cannot create <EB><AD><C9>-<EE>n Illegal byte sequence unable to process <EB><AD><C9>-<EE>n/_<EB><AD><C9>-<EE>n<FB>+ <C4>?.html. (以下略) |
(/usr/bin/unzip でも、/opt/local/bin/unzip でも、 挙動は同じである。)
どうもファイル名の文字コードがらみの問題らしい。 ファイル名の文字コードがいわゆる shift JIS (遠因: Windows で作られた zip ファイル) であるのが原因?
(早くなくなれ shift JIS…)
ネットで調べたところ、unzip に文字コード関係の処理を追加したものがあるらしい。 MacPorts で variant の指定をすればイントール出来る。
sudo port install unzip +iconv |
unzip -O sjis abstract.zip |
この unzip では、-O sjis を指定しなくても、とりあえず展開が出来るが、 ファイル名が化ける。
unzip で展開してファイル名の文字化けが出るようならば、 unzip -h でヘルプを出して、 unzip -O sjis を思い出す、と覚えておこう。
あるいは
alias unzipwin='/opt/local/bin/unzip -O sjis' |
感想 zip ファイルを使う人は多いと思うのだが、 以前普通に出来ていたことが出来なくなって、 ネットで話題になっているのに治らないのは、 一体どういうことなのだろう。
「Microsoft、Shift_JISや外字からUnicodeへの移行を呼びかけ」
https://srad.jp/story/20/03/06/1237211/
桂田 祐史