3 个稳定版本

1.1.1 2023 年 4 月 3 日
1.0.1 2019 年 10 月 19 日

国际化 (i18n) 中排名第 83

每月下载量 28 次

GPL-3.0-only

7KB
69

utf8-norm,验证和规范 UTF-8 Unicode 数据

关于

版本 1.1.0,授权 GPLv3。© 2019 Leonora Tindall [email protected] 快速命令行 Unicode 规范化,支持流安全转换以及 NFC、NFD、NFKD 和 NFKC。如果输入流不是有效的 UTF-8,则退出失败。

用法

用法:utf8-norm [--nfc | --nfd | --nfkc | --nfkd] [--stream-safe] [--crlf]

<infile> (default stdin) - file from which to read bytes.
<outfile> (default stdout) - file to which to write normalized Unicode.
-w, --crlf  - write CRLF (Windows) instead of LF only (Unix) at the end of lines.
-d, --nfd   - write NFD (canonical decomposition).
-D, --nfkd  - write NFKD (compatibility decomposition).
-c, --nfc   - write NFC (canonical composition computed from NFD). This is the default.
-C, --nfkc  - write NFKC (canonical composition computed from NFC).
-s, --stream-safe   - write stream-safe bytes (Conjoining Grapheme Joiners, UAX15-D4).
-b, --buffered  - read the entire input file into memory before operating on it.
-V, --version - output version information and exit.

除非指定了 --buffered,否则 utf8-norm 以行为单位处理输入。

--buffered 选项主要用于读写同一文件。它将从输入中读取字节直到文件结束,然后才开始处理输入的行。

示例

将 input.txt 的内容,兼容地分解,并带有 CRLF 行结束符,写入 output.txt

utf8-norm --nfkd --crlf input.txt output.txt

在规范组成中规范化文件.md,在内存中缓冲文件以避免用零覆盖它

utf8-norm --buffered file.md file.md

逐行输出 my_program 的输出到 stdout,在规范组成中。

my_program | utf8-norm

在内存中缓冲 my_program 的整个输出,并在接收到文件结束符后以规范组成将其输出到 my_program.output。

my_program | utf8-norm --buffered - my_program.out

关于

utf8-norm 是在俄亥俄州代顿的 Rust Belt Rust 2019 上创建的。感谢 @j41manning 关于 Rust 中的 Unicode 处理的精彩演讲。

原生安装为 cargo install utf8-norm 或从您的发行版的包管理器。

依赖关系

~1MB
~41K SLoC