14 个版本 (3 个稳定版)

1.1.0 2023 年 3 月 11 日
1.0.1 2021 年 11 月 7 日
1.0.0 2021 年 9 月 26 日
0.7.0 2021 年 9 月 5 日
0.2.1 2020 年 9 月 22 日

#640命令行工具

每月 37 次下载

MIT 许可协议

27KB
378

ZI

File Names to UTF-8 (ZIFU)

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

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

您是否遇到过从其他操作系统用户那里收到 ZIP 文件,解压后日本语文件名严重乱码,或者向其他操作系统用户发送 ZIP 文件,被告知非英文文件名也乱码的情况?这个工具可以检查 ZIP 文件中的文件名是否能够在所有操作系统和语言中无乱码地解压,并在必要时进行修复。

你有没有收到来自其他 OS 用户的 zip 文件,当你解压它们时,它们的非英文文件名完全乱码,或者当你向其他 OS 用户发送 zip 文件时,你被告知非英文文件名也乱码?

这个工具检查 zip 归档中的文件名是否可以在所有操作系统和语言中无乱码地解压(即显式以 UTF-8 编码),如果不能,则修复它们。

关于 Unicode 正规化

从 v0.6.0 版本开始,该工具可以检测和修正以不常见的 Unicode 正规化编码的 UTF-8 编码的文件名。
该工具从 0.6.0 版本开始检测并修正以不常见的 Unicode 正规化编码的 UTF-8 编码的文件名。

在 macOS 的 Finder 中创建的 ZIP 文件使用 HFS+ 专有的 Unicode 正规化编码的 UTF-8 编码文件名。在 Windows 或 Linux 上解压这些文件时可能会出现以下不便。
在 macOS 的 Finder 中创建的 ZIP 文件包含使用 HFS+ 专有的 Unicode 正规化编码的 UTF-8 编码的文件名。由解压创建的文件可能会导致以下不便。

  • 看似同名的文件会创建多个(通常的 Unicode 正规化文件不会与之冲突)
    看似同名的文件对会创建,它们不会被处理为重复。
  • 在命令行或 GUI 的文本框中直接输入文件名或路径时无法选择它们
    您不能通过在 CLI 或 GUI 的文本框中键入它们的名称或路径来选择它们。

因此,(在 Windows 或 Linux 中)未经一般化格式化的文件名,即使明确表示为 UTF-8,也假设在大多数环境中文件名可以正确处理。与隐式非 ASCII 编码一样,它们应被视为本工具的修正对象。
因此,未按常规方式(在Windows和Linux中)规范化的文件名不应被视为“在大多数环境中都已处理”,即使它们被明确指定为使用UTF-8编码。它们应像使用隐式非ASCII编码编码的文件一样,由该工具进行纠正。

安装 / 如何安装

下载二进制文件 / 下载二进制文件

请从这里下载最新版本。 / 请在此处下载最新版本。

https://github.com/tats-u/zifu/releases

Cargo

请运行以下命令。 / 请运行以下命令

cargo install zifu

开发版 / 开发版本

请运行以下命令。 / 请运行以下命令

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

用法

要修复ZIP文件,请输入以下命令。

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

如果要覆盖,请输入以下命令代替。

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

要检查ZIP文件是否明确以UTF-8编码,请输入以下命令。

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

要检查ZIP文件的文件列表,请输入以下命令。

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

如果您要显示或修复在国外创建的ZIP文件的文件名,请使用-e <编码>选项。例如,如果您从美国收到ZIP文件,尝试以下命令。

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

此外,尽管非常罕见,但如果您希望使用UTF-8而不是Shift-JIS,则可以使用-u选项。

如何使用

要修复ZIP文件,请运行以下命令

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

要覆盖ZIP文件,请使用以下命令代替

zifu -i <Path to the ZIP file>

要检查ZIP文件是否明确以UTF-8编码,请运行以下命令

zifu -c <Path to ZIP file>

要列出ZIP文件中的文件名,请运行以下命令

zifu -l <Path to ZIP file>

要显示或修复在国外创建的ZIP文件,请添加-e <编码>选项。例如,如果您从日本收到ZIP文件,尝试以下命令。

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

将出现已纠正的日文字符。

如果您更喜欢UTF-8而不是您的语言编码,请添加-u选项。这对于说英语、泰语或越南语的人来说很重要。中文、日语和韩语的编码通常无法在没有错误的情况下解码UTF-8编码的字符串,因此如果您说这些语言,就没有必要添加它。

限制条件 / 限制

以下语言不受支持。 / 仅支持以下语言:括号中为主要的编码。 / 主要编码在括号中给出。

  • 日语 / 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。 / In unsupported languages, CP437 will be used.

许可证

MIT许可证。请参阅LICENSE.txt获取详细信息。

许可证

MIT许可证;有关详细信息,请参阅LICENSE.txt

依赖项

~11MB
~236K SLoC