14 releases (3 stable)

1.1.0 Mar 11, 2023
1.0.1 Nov 7, 2021
1.0.0 Sep 26, 2021
0.7.0 Sep 5, 2021
0.2.1 Sep 22, 2020

#324 in Command line utilities

48 downloads per month

MIT license

378 lines

ZIP File Names to UTF-8 (ZIFU)

CI (master) CI (Release) zifu at crates.io Crates.io downloads Crates.io downloads (recent)

Public API crate: zifu at crates.iozifu_core at docs.rs Crates.io downloads Crates.io downloads (recent)

他のOSを使っている人からZIPファイルをもらったけど解凍したらファイル名の日本語が思いっきり文字化け、もしくは他のOSのユーザにZIPファイルを送ったら同じく日本語ファイル名が文字化けしてると言われた・・・そんな経験はありませんか?このツールでは、ZIPファイルのファイル名が全てのOS・言語で文字化けすることなく解凍できる (UTF-8で明示的にエンコードされている) かどうかをチェックし、必要に応じて修復します。

Have you ever received zip files from other OS users and when you decompressed them, their non-English file name were completely garbled, or when you sent zip files to other OS users, you were told that non-English file names were garbled?

This tool checks if file names in zip archives can be decompressed without garbling on all operating systems and languages (i.e. explicitly encoded in UTF-8) and repairs them if not.

Unicodeの正規化について / For Unicode Normalization

This tool detects and corrects file names that are encoded in UTF-8 with uncommon Unicode normalizations from the version 0.6.0.

ZIP files created by Finder in macOS contains file names encoded in UTF-8 with the HFS+-specific Unicode normalization. The files created by extracting them can cause the following inconveniences:

  • 一見同名なファイルが複数できてしまう(通常のUnicode正規化をしたファイルと排他しない)
    Pairs of files that appear to have the same name appear. They are not treated as duplicated.
  • コマンドラインやGUIのテキストボックス等でファイル名・パスを直打ちしても引っかからない
    You cannot select them by typing their names or paths in CLI or textboxes in GUI.

Therefore, file names that are not normalized in the common way (in Windows and Linux) should not treated as “dealt with in the most environments,” and c even if it is explicitly specified that they are encoded in UTF-8. They should be corrected by this tool as with those encoded in implicit non-ASCII encodings.

インストール / How to install

バイナリをダウンロード / Download a binary

ここから最新版をダウンロードしてください。 / Download the latest version here.



次のコマンドを実行してください。 / Run the following command:

cargo install zifu

開発版 / Development version

次のコマンドを実行してください。 / Run the following command:

cargo install --git https://github.com/tats-u/zifu.git



zifu <ZIPファイルのパス> <出力先のパス>


zifu -i <ZIPファイルのパス>


zifu -c <ZIPファイルのパス>


zifu -l <ZIPファイルのパス>

海外で作成されたZIPファイルの名前を表示・もしくは修復する場合は-e <エンコーディング>オプションを使用します。例えば、次のコマンドでアメリカで作成されたZIPファイルのファイル名を表示します。

zifu -l -e cp437 <ZIPファイルのパス>


How to use

To repair a ZIP file, run the following command:

zifu <Path to garbled ZIP file> <Path to output>

To overwrite the ZIP file, use the following command instead:

zifu -i <Path to the ZIP file>

To check if a ZIP file is explicitly encoded in UTF-8, run the following command:

zifu -c <Path to ZIP file>

To list file names in a zip file, rum the following command:

zifu -l <Path to ZIP file>

To show file names or repair ZIP archives created outside of your country, add -e <Encoding> option. For example, if you get a ZIP archive from Japan, try:

zifu -e sjis -l <Path to ZIP file>

Japanese characters will corrected appear.

If you prefer UTF-8 than the encoding of your language, add -u option. This is important if you speak English, Thai, or Vietnamese. Encodings of Chinese, Japanese, and Korean usually cannot decode strings encoded in UTF-8 without error, so there is little need to add it if you speak them.

制限事項 / Restriction

以下の言語以外非対応です。 / Only these languages are supported: カッコ内は主要なエンコーディングです。 / Primary encodings are given in parenthesis.

  • 日本語 / Japanese (Shift-JIS / EUC-JP)
  • 中国語 / Chinese (GBK / BIG5)
  • 韓国語 / Korean (EUC-KR)
  • ベトナム語 / Vietnamese (Windows-1258)
  • タイ語 / Thai (Windows-874)
  • 英語 / English (CP437 / CP850)
  • 西ヨーロッパ言語 / Western Europe languages (CP850)
  • ギリシャ語 / Greek (CP737)
  • 中央ヨーロッパ言語 / Central Europe languages (CP852)
  • セルビア・ボスニア語 / Serbian & Bosnian (CP855)
  • トルコ語など / Turkish etc. (CP857)
  • ヘブライ語 / Hebrew (CP862)
  • ロシア語など / Russian etc. (CP866)
  • アラビア語 / Arabic (CP720)

非対応の言語では、CP437が使用されます。 / CP437 will be used in unsupported languages.




The MIT License; see LICENSE.txt for details.


~238K SLoC