#unicode #decomposition #normalization #unicode-characters #recomposition #text

无 std unicode-normalization

此crate提供Unicode字符串规范化的函数,包括规范化和兼容分解和重组,如Unicode标准附件#15所述

27次发布

0.1.23 2024年2月20日
0.1.22 2022年9月16日
0.1.21 2022年7月1日
0.1.19 2021年6月2日
0.1.1 2015年7月9日

#6 in 文本处理

Download history 2012812/week @ 2024-04-19 1853733/week @ 2024-04-26 1927502/week @ 2024-05-03 1999213/week @ 2024-05-10 2035797/week @ 2024-05-17 1926421/week @ 2024-05-24 2044639/week @ 2024-05-31 1942214/week @ 2024-06-07 1812892/week @ 2024-06-14 1954053/week @ 2024-06-21 1800444/week @ 2024-06-28 1975198/week @ 2024-07-05 2030818/week @ 2024-07-12 2083008/week @ 2024-07-19 2050442/week @ 2024-07-26 2176058/week @ 2024-08-02

8,732,796 每月下载量
29,496 个crate(191直接)中使用

MIT/Apache

700KB
39K SLoC

unicode-normalization

Build Status Docs

Unicode字符组合和分解工具,如Unicode标准附件#15所述。

此crate需要Rust 1.36+。

extern crate unicode_normalization;

use unicode_normalization::char::compose;
use unicode_normalization::UnicodeNormalization;

fn main() {
    assert_eq!(compose('A','\u{30a}'), Some('Å'));

    let s = "ÅΩ";
    let c = s.nfc().collect::<String>();
    assert_eq!(c, "ÅΩ");
}

crates.io

您可以通过将以下内容添加到您的Cargo.toml来在项目中使用此包

[dependencies]
unicode-normalization = "0.1.23"

no_std + alloc支持

此crate完全兼容no_std + alloc。这可以通过禁用std功能来实现,即在您的Cargo.toml中指定此crate的default-features = false

依赖项