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

unicode-normalization-alignments

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

1个不稳定版本

使用旧的Rust 2015

0.1.12 2019年12月30日

739文本处理

Download history 29221/week @ 2024-03-14 31078/week @ 2024-03-21 27144/week @ 2024-03-28 33378/week @ 2024-04-04 33918/week @ 2024-04-11 38390/week @ 2024-04-18 36109/week @ 2024-04-25 39770/week @ 2024-05-02 35887/week @ 2024-05-09 50875/week @ 2024-05-16 48928/week @ 2024-05-23 53922/week @ 2024-05-30 54678/week @ 2024-06-06 55545/week @ 2024-06-13 54774/week @ 2024-06-20 43775/week @ 2024-06-27

219,767 每月下载量
103 个crates中使用了(直接使用3个)

MIT/Apache

495KB
24K SLoC

unicode-normalization-alignments

Build Status Docs

这是unicode-normalization的分支版本,它提供归一化过程中的对齐信息。

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

此crate需要Rust 1.36+。

extern crate unicode_normalization_alignments;

use unicode_normalization_alignments::char::compose;
use unicode_normalization_alignments::UnicodeNormalization;

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

	let s = "ÅΩ";
	let c = s.nfc().map(|(c, diff)| {
		match diff {
			0 => println!("Nothing changed here"),
			1 => println!("New character"),
			_ => println!("{} characters were removed", diff),
		}

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

crates.io

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

[dependencies]
unicode-normalization-alignments = "0.1.12"

依赖项