Microsoft Cabinet File は Unicode なファイル名が格納できる

Microsoft のキャビネット形式のファイル(*.cab)は、個々のファイル名を Unicode で格納することができますので、Shift_JIS だけでは表現できない名前のファイルも格納することができます。デフォルトではキャビネット内に格納されるファイルの名前は、Shift_JIS等の各コードページとなりますが、キャビネットファイル内に格納される個々のファイルの情報を記録している CFFILE エントリーの attribs メンバに _A_NAME_IS_UTF フラグが設定されている場合には、UTF-8 でファイルの名前が記録されることになります。ただし、CABSDKに含まれる文書によると、格納可能な Unicode 文字は U+0000 〜 U+FFFF までの BMP 内の文字に限られるようです。これは、文書の日付が1997年と古いためでもあるのでしょう。
…が、実際に Unicode な名前のファイルをキャビネットファイル内に含め、それを展開した場合に、正常に Unicode なファイル名として扱うことができるツールというのは、ほとんど存在しないようです。いくつか試した範囲では、純正 Explorer による仮想フォルダ(シェル拡張)くらいでしょうか…。CABSDK に含まれる EXTRACT.EXE や CABARC.EXE でさえも Unicode なファイル名を正常に取り扱えないようです。残念。