(自称) UNICODE ZIP普及委員会 定期POST① 作ろうUNICODE ZIP。
こちら、(自称) UNICODE ZIP普及委員会。
UNICODE ZIP なのは義務なんです。Language encoding flag を立ててますか?義務ですよ?果たしてますか?
#1 概要
ZIPファイルはPhil Katzさん (PKWARE) が開発した、主に Windows 向け の圧縮ファイル コンテナです。
ZIPファイルはPhil Katzさん (PKWARE) が開発した、主に Windows 向け の圧縮ファイル コンテナです。
大事なことなので2回言いました。
Windows XPでExplorerが対応した為か、今ではほぼ標準的に世界で利用されている(様子)。
また現在では、JavaのJAR形式やOpen Document、Office Open XML、FirefoxのプラグインのXPIなど様々なプラットフォームで多種多様な利用がされています。
そして、インターネットやデバイスの普及により、国やプラット フォームを跨ぐことが増え、ZIPコンテナの仕様にも国際文字対応が追加されています。
しかしながら、その仕様については認知度が低く。解凍ソフト以上に圧縮ソフト側の環境の普及も進んでおらず、あまり活用出来ておりません。本来であれば文字化けはもっと高確率で回避出来るはずですが、現実的には、未だに多くの人が文字化けに悩まされているのが現状です。
愛すべきZIPファイルの有効性をもっと大きくすべく。勝手ながら「 UNICODE ZIP 」と称し、認知とトラブル回避を広めていきたいと思い、 UNICODE ZIP普及委員会 を自称させて頂く次第です
。
尚、当方はかつては ZIP実装会 (#zipimpl) という勉強会を20011年頃に関東で行っていた首謀者の1人のポンコツです。
手前味噌
以前こんなものを書いていたことがあります。古い記事ですが、併せてご参照いただければと思います。
#2 目的
当 (自称) UNICODE ZIP 普及委員会は、UNICODE ZIP の普及により、
- UNICODE ZIP および UNICODE の認知の拡大。
- UNICODE ZIP 対応ソフトウェアの普及拡大・定着・標準化。
- UNICODE ZIP の普及を阻害する、 UNICODE ZIP 非対応ソフトウェアの衰退。
- UNICODE ZIP ファイルの利用定着による、プラットフォーム間の文字コード トラブルの回避。
を目標としております。
会員募集中です。
#3 UNICODE ZIP とは (勝手に定義)
- APPNOTE-6.3.0.TXT (2006/09/29)
https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.3.0.TXT -
general purpose bit flag の11bit目の Language encoding flag が
1
で立っている。 - ファイル名やコメントにUNICODEが使用されている。
- UNICODEはUTF-8。
を指します。
OSのシステム 文字コードがUTF-8という理由で、ファイル名がUTF-8になっているものは、Language encoding flag が立っておらず、 従来のZIPで解凍側にはエンコードがわからないため、UNICODE ZIP とは呼びません。
UNICODE ZIP は Language encoding flag によって、解凍側にも UNICODE (UTF8) であることがわかる必要があります。
また、Language encoding flag はエントリー単位で指定が可能なため、UNICODE ZIP のエントリーと UTF-8 のエントリーと、S-JIS のエントリーが混ぜることも、残念ながら可能です。キメラは文字化けを回避するという本質を全うしないため、 UNICODE ZIP としては取り扱いません。ただし、文字化けの危険性のない ASCII は Language encoding flag が立っていなくても、UNICODE ZIP として許容いたします。
なお、 UNICODE ZIP は、内包しているファイル名とコメントのエンコードだけの話になります。。内容物のテキスト ファイルのエンコードについては言及しておりません。もちろん、圧縮アルゴリズムについても言及しません。
#4 UNICODE ZIP が普及しない諸悪 (問題提起)
代表的な要因の1つには、 窓の杜 のトップページに 「 無料で使える定番フリーソフト選! 」として、 UNICODE ZIP の解凍に対応していない Lhaplus が掲載されていることが挙げられると思います。
こういった記載のせいで、一般のPCユーザーなどには今でも根強い人気となってしまい、 「 Lhaplus の挙動が正 」と信じて疑わない人も少なく無いと思います。また、エンジニアでは無い一般ユーザーへ説明するのも難しく、 Lhaplus など古いアーカイバーでの解凍で化けない様に、MS932でZIPに圧縮するサーバー アプリケーションなどが多くあるのでは無いのでしょうか?身に覚えはありますか?えぇ、私はあります。。。
_(:3」∠)_
コロナ禍でテレワークが増え、ZIPファイルでファイル交換をすることも増えている現代で、これは大変に困る状況です。
もう、 UNICODE ZIP に対応していないアーカイバーは 定番ソフトウェア なんかではありません。そもそもWindows Explorerが UNICODE ZIP に対応しているのに、 UNICODE ZIP 非対応のアーカイバーが勧められる理由は一切ありません。
(ちなみに会社で利用しているユーザーに聞いたらPPAPで使っているとか...)
最終的に、どんなソフトウェアを使おうが個人の自由です。それを否定するつもりはありませんが。保守性やセキュリティなど時代に合わせて、自由以前の他のユーザーに勧めて良いかどうかは別問題です。ただのバイアスです。
WinXPやWin 7だって、好きなら全然使って良いと思います。使いたいです。でも、実際に事務用途で使うか、友人知人に勧めるかと言えば、話は変わります。
初心者の手の届く近いところに、適切ではない情報があることが、 UNICODE ZIP の解凍環境の普及を阻害し。また、職業は趣味とは違いますから、当然SEと言ってもシステム自体には大して拘りのないのも当然です。なので、そんな大多数のシステム エンジニアへの理解も妨げられ、UNICODE ZIP の圧縮環境が増えず、 UNICODE ZIP が普及しないことに繋がっていると考えております。
窓の杜 には1日も早く、 Lhaplus の掲載を取り下げて頂くことを願ってやみません。
窓の杜 には1日も早く、 Lhaplus の掲載を取り下げて頂くことを願ってやみません。
窓の杜 には1日も早く、 Lhaplus の掲載を取り下げて頂くことを願ってやみません。
窓の杜 には1日も早く、 Lhaplus の掲載を取り下げて頂くことを願ってやみません。
窓の杜 には1日も早く、 Lhaplus の掲載を取り下げて頂くことを願ってやみません。
#5 UNICODE ZIP を作る。 (圧縮)
Java 7以降
Javaは7から UNICODE ZIP が標準になっております。
手前味噌ですが、以下をご参照ください。
Apach Commons Compress
Javaは6までは UNICODE ZIP に対応しておりません。その場合、Apach Commons Compressで対応が可能です。
7-Zip
圧縮時にパラメーターに cu=on
をつけてください。
ただし、D&Dなどでアーカイブに追加などする際にはパラメーターをつけられないため、ZIPのエントリーとしては混合状態となります。
7za
コマンド ライン引数に -mcu=on
をつけてください。
7za a -tzip -mx=9 -mcu=on out.zip *.*
その他 (メモ)
- Windows ExplorerはOSのシステム文字コードに収録されていない文字がファイルに使用されていると、そのファイルのエントリーはUNICODEになります。
- WinRARはOSのシステム文字コードに収録されていない文字がファイルに使用されていると、そのファイルのエントリーはUNICODEになります。
#6 UNICODE ZIP を確認する。
7-Zip
7-Zip の 特性 カラムで簡単に確認が行なえます。UTF8となっているものは、UNICODE ZIP のエントリーです。
#7 UNICODE ZIP を解凍する。
手前味噌ですが、過去 (200017年頃) にこんなものをまとめました。
現在ではほとんどのソフトで UNICODE ZIP を正常に解凍出来ます。「それでも文字化けしたんだが?👿」というそこのあなた。それ、macやLinuxで作られた、UTF-8なだけのZIP じゃありませんか? Language encoding flag が立ってませんからー!残念! (予想)
👎使ってはいけない解凍ソフト
以下のソフトウェアは UNICODE ZIP の解凍に対応していない代表的な解凍ソフト。関連付けを行ってしまうことで、折角Windows Explorerが標準対応してくれているのを無駄にしてしまい、トラブルの元になってしまいます。
いずれも、過去にとても活躍した、便利で大変ありがたいソフトウェアたちですが。今はもう絶対に使ってはいけないし、もし身の回りで使っている人が居たら諭してあげましょう。システムに組み込まれていたら、7za
などへの置き換えを検討してください。RPAで自動化するんだ!って人がいたら、RPAなんて夢見事にまで巻き込まれてはいけませんので、距離を置きましょう。
- Lhaplus
- Lasa
- +Lhaca
👍推奨される解凍ソフト
以下のソフトウェアは UNICODE ZIP に解凍に対応している利用できるソフトウェアです。積極的に利用しましょう。
個人的には国産の Explzh を応援していきたいです。自己解凍書庫 (SFX Stub) も UNICODE ZIP に対応している優れものですので。
Q & A
Q. 突然どした?
A. togetterでのまとめの中で、
ちなみに、zipは仕様が複雑過ぎて、収集ついてない感じがする。
というツイートをみて。ZIPコンテナが、ZIPファイルにも多岐に活用されているのにと思い。ZIPが抱える問題の1つに対して、提起してみたくなった次第です。
Q. ZIP詳しいの?
A. ZIP実装会 (#zipimple) でも主催のくせに参加者に教えて貰ってばかりのポンコツでした。。。。未だにDeflate実装できてません。
_(:3」∠)_
Love ZIP!
Q. むしろ7zやとか後発のアーカイバーを使うべきなんじゃ?
A. 後発のアーカイブはどれもUNICODE対応されていますね。だからこそ、ZIPも UNICODE ZIP が現在のベストかと思います。UNICODE ZIP に対応していない環境は、9割方が使い続けず避けたほうが良いハズです。固執のに大した理由は無いと思います。
また、 ZIPコンテナ も Deflate も、ZIPファイルを離れて色々なシーンで利用されています。互換性 が非常に高いのです。データに於いて、最も重要視されるのは 互換性 だと思っております。だからこそ、今でも JPEG も GIF も TIFF でさえも現役だったりします。ZIPファイル 現役です。Windowsがデフォルトでサポートしてくれているお陰で、ソフトウェアを導入しなくても利用できるのです。同様の道をHTML5でPDFが追っておりますが、互換性 が高いんです。後発のアーカイバーも今後頑張ってほしいですし、いずれは置き換わるでしょう。ただ、それが今ではなく、並行期間かと思っております。
Q. 解凍?展開じゃないの?
A. 解凍派です。
たけのこ派です (聞いてない。)
手前味噌ですが、20016年頃に調べたものです。
Q. Lhaplus そんなにダメ?
A. ずっと愛用していて、アイコン好きでした。だからこそ、有終の美を飾って欲しい。負の遺産を撒き散らしている現状が悲しい (T_T)。。。
謝辞
- PKWARE
https://www.pkware.com/ - Application Note Archives - PKZIP & SecureZIP
https://support.pkware.com/home/pkzip/developer-tools/appnote/application-note-archives - Explzh - 多形式に対応した、圧縮解凍ソフト
https://www.ponsoftware.com/ - 圧縮・解凍ソフト 7-Zip
https://sevenzip.osdn.jp/ - ZIP (ファイルフォーマット) - Wikipedia
https://ja.wikipedia.org/wiki/ZIP_(ファイルフォーマット)
Discussion