#text-encoding #character-encoding #unicode #cjk #unicode-text

bin+lib aconv

将文本从自动检测的编码转换为 UTF-8 或指定的编码

5 个版本

0.1.4 2021 年 10 月 25 日
0.1.3 2021 年 10 月 25 日
0.1.2 2021 年 10 月 24 日
0.1.1 2021 年 10 月 24 日
0.1.0 2021 年 10 月 24 日

#131国际化 (i18n)

每月 23 次下载

MIT/Apache

80KB
1K SLoC

aconv

将文本从自动检测的编码转换为 UTF-8 或指定的编码。
这与 iconv 命令类似,但有以下不同。

  • 如果未指定源编码,将检测编码。
  • 使用替换字符或相应的数字字符引用替换格式错误的字节序列,这取决于目标字符集(即 Unicode 或非 Unicode)。
  • 可以递归地转换目录中的文件,并将转换后的文件输出到指定的目录,同时保留目录层次结构。

由于这个库依赖于 encoding_rs,因此可用的编码是在 编码标准 中定义的。

注意:UTF-16 文件需要 BOM 才能被检测为编码。
这是因为 chardetng(此库所依赖的库),不支持 UTF-16,而这个库仅添加了 BOM 检测以检测 UTF-16。

安装

cargo install aconv

用法

Converts texts from the auto-detected encoding to UTF-8 or a specified encoding.
If byte sequences that is malformed as Unicode are found,
they are replaced with the REPLACEMENT CHARACTER(U+FFFD).
If the destination encoding is not Unicode and unmappable characters are found, they are
replaced with the corresponding numeric character references.
If the encoding detection is considered it failed, the input texts are output as-is,
meaning no conversion takes place, and an error message is emitted.

USAGE:
    aconv [FLAGS] [OPTIONS] [FILE]...

FLAGS:
    -h, --help       Prints help information
    -l, --list       Prints supported encodings
    -q, --quiet      Suppresses error messages when encoding detection failed
    -s, --show       Only shows auto-detected encodings without decoded texts
    -V, --version    Prints version information

OPTIONS:
    -o, --output <DIRECTORY>                 Output directory. If input arguments contain directories, the directory
                                             hierarchies are preserved under DIRECTORY
    -t, --to-code <ENCODING>                 The encoding of the output [default: UTF-8]
    -A, --non_ascii_to_guess <NUMBER>        The number of non-ASCII characters to guess the encoding. Around 100
                                             characters are enough for most cases, but if the guess is not accurate,
                                             increasing the value might help [default: 100]
    -T, --non-text-threshold <PERCENTAGE>    The threshold (0-100) of non-text character occurrence. Above this
                                             threshold in decoded UTF-8 texts, the encoding detection is treated as it
                                             failed. In that case the input texts are output as-is with an error message
                                             emitted [default: 0]

ARGS:
    <FILE>...    Files (or directories) to process

编码检测的工作方式

请参阅 transcoding_rs

许可

根据您的选择,许可如下:

贡献

除非您明确声明,否则您提交给包括在作品中的任何贡献,根据 Apache-2.0 许可证定义,将按照上述方式双重许可,没有任何额外的条款或条件。

依赖关系

~7MB
~179K SLoC