2 个版本
使用旧的 Rust 2015
0.1.1 | 2017 年 10 月 8 日 |
---|---|
0.1.0 | 2017 年 10 月 8 日 |
#1813 in 文本处理
54 每月下载量
在 2 crates 中使用
160KB
105 代码行
Unicode 字符“易混淆”检测和“骨架”计算,由 Unicode 标准附录 #39 指定。这些函数用于处理看起来几乎相同,但实际上不等的字符串。
extern crate unicode_skeleton;
use unicode_skeleton::{UnicodeSkeleton, confusable};
fn main() {
assert_eq!("𝔭𝒶ỿ𝕡𝕒ℓ".skeleton_chars().collect::<String>(), "paypal");
assert!(confusable("ℝ𝓊𝓈𝓉", "Rust"));
}
crates.io
将以下内容添加到您的 Cargo.toml
以使用
[dependencies]
unicode_skeleton = "0.1.0"
lib.rs
:
通过替换不寻常的字符为相似外观的常见字符,将 Unicode 字符串转换,如由 Unicode 标准附录 #39 指定。例如,“ℝ𝓊𝓈𝓉”将被转换为“Rust”。这个简化的字符串称为“骨架”。
use unicode_skeleton::UnicodeSkeleton;
"ℝ𝓊𝓈𝓉".skeleton_chars().collect::<String>() // "Rust"
如果字符串具有相同的骨架,则认为这些字符串是“易混淆”的。例如,“ℝ𝓊𝓈𝓉”和“Rust”是易混淆的。
use unicode_skeleton::confusable;
confusable("ℝ𝓊𝓈𝓉", "Rust") // true
骨架转换基于 Unicode 安全机制 UTR #39 版本 10.0.0。
依赖项
~800KB
~40K SLoC