[WEB App] Archive Manager v1 — libarchive.js & JSZipによるブラウザ完結型アーカイブ展開・文字化け自動修復ツール

[WEB App] Archive Manager v1 — libarchive.js & JSZipによるブラウザ完結型アーカイブ展開・文字化け自動修復ツール

Archive Manager

ZIP、7z、RAR、tar.gz などの各種アーカイブファイルを、サーバーへアップロードすることなくブラウザ上だけで安全に解凍・閲覧・抽出できるツール。

解凍コアには libarchive の WebAssembly ビルド(libarchive.js)と生バイト制御が可能な JSZip を組み合わせたハイブリッド構造を採用。Windows特有のShift-JIS (CP932) ファイル名文字化けを完全自動で判定・修復し、悪意あるファイルを検出する静的セキュリティ診断エンジンも搭載。

スクリーンショット

1. アーカイブツリー表示と文字化け修復

Archive Manager — ZIPファイル読み込みとツリー表示

2. 画像プレビュー

Archive Manager — 画像プレビュー表示

3. テキスト / コード表示

Archive Manager — テキストプレビュー表示

動画(GIF)

Archive Manager — 操作デモ

使い方

1. アーカイブファイルを読み込む

左パネルのドロップゾーン(Drop archive file or click to browse)にアーカイブファイルをドラッグ&ドロップするか、クリックして選択。

対応形式:.zip .7z .tar .tar.gz .tar.bz2 .tar.xz .rar

2. ファイル構造とツリーを確認する

読み込みが完了すると、中央エリアにディレクトリ階層がツリー表示される。フォルダを展開して内部のファイル構造や容量、個別ファイルのサイズを確認可能。

3. 文字化けの自動判定・修復(Fix Shift-JIS)

Windowsで作成されたZIPファイルの場合、左パネルの「Fix Shift-JIS Filenames (文字化け修復)」チェックボックスが自動でオンになり、CP932エンコードで復元された正しい日本語パスが表示される。トグルを切り替えることで生のUTF-8解釈表示に戻すことも可能。

4. インラインプレビューで確認する

リスト内の各ファイルをクリックすると、右エリアに即時プレビューが表示される。

  • 画像: 解凍されたBlobから安全に画像をプレビュー
  • テキスト/コード/JSON: モジュールや設定ファイルをエスケープ処理の上で <pre> 表示
  • 3D関連データ: .vmd.vpd などのモーショデータ構造の即時確認

5. セキュリティチェック結果を確認する

左パネルの「SECURITY CHECK」セクションで以下のリスク要素を自動診断。

  • ZIP爆弾警告: 高圧縮率(100倍超)によるメモリ圧迫の検知
  • 実行可能ファイル検知: .exe, .bat 等の存在警告
  • 危険パス検知: パス・トラバーサル(../)構造の走査
  • 偽装検出: 拡張子とマジックバイト(ヘッダー識別子)の不一致検出

6. ファイルの抽出・ダウンロード

  • 一括再展開(UTF-8 ZIP): 「📦 Extract All (ZIP)」ボタンを押すと、文字化けを修復したファイル名のまま標準的な UTF-8 ZIP アーカイブとして再構築して一括ダウンロード
  • 単体抽出: リストからファイルを選択し「💾 Download」ボタンで個別に保存

なぜ文字化けが発生するのか?

Windowsの標準ZIP圧縮機能は、ファイルパスの文字エンコーディングに伝統的に Shift-JIS (CP932) を使用します。一方、Mac、Linux、および現代のWebブラウザは UTF-8 を前提としてZipファイルを解凍しようとします。

このエンコード仕様の不一致により、Windowsで圧縮されたZipをMacやブラウザで開くと「ネコの伸び」が「ネコノ伸ビ」のように文字化けします。

一般的なWASMデコーダー(C/C++製)をそのまま使うと、WASM内部で不可逆変換が起き復元不能になりますが、本ツールは JSZip でヘッダーの生バイト列をそのままメモリに保存し、JavaScriptの TextDecoder('shift-jis') でフォールバック復元するため、文字化けを起こさずにブラウザ内で安全に解凍できます。

技術スタック

  • JSZip — ZIP形式のパース、文字コードの生バイト制御、一括再ZIP化
  • libarchive.js — 7z / RAR / tar 等多形式アーカイブのWASMパース
  • TextDecoder API — UTF-8 (fatal) および Shift-JIS (CP932) のバイトデコード
  • Astro — コンポーネントビルドおよびクライアントサイドスクリプト組み込み

技術記事

更新履歴

  • [v1.0] (2026-09-05): 初回公開。
    • libarchive.js WASM & JSZip ハイブリッド解析エンジンの構築
    • ZIP, 7z, RAR, tar, tar.gz, tar.bz2, tar.xz の閲覧・解凍対応
    • Shift-JIS (CP932) / UTF-8 2段階自動判定・文字化けリアルタイム修復
    • アーカイブ内ツリービューレンダリングおよびアイコン自動選択
    • 画像、テキスト、コード、3Dモーションファイル(.vmd/.vpd)のブラウザ内安全プレビュー
    • 静的セキュリティ診断(ZIP爆弾、二重拡張子、パス・トラバーサル、マジックバイト偽装)
    • 文字化け修復済み UTF-8 ZIP 一括再構築ダウンロード機能