15 个版本
0.1.13 | 2024 年 6 月 4 日 |
---|---|
0.1.11 | 2023 年 9 月 19 日 |
0.1.10 | 2022 年 9 月 13 日 |
0.1.9 | 2021 年 9 月 16 日 |
0.1.2 | 2015 年 7 月 9 日 |
51 在 文本处理
6,654,284 每月下载量
用于 23,477 个 crate(638 个直接使用)
460KB
1K SLoC
unicode-width
根据 Unicode 标准附件 #11 和 Unicode 标准的其他部分确定 char
和 str
类型的显示宽度。
此 crate 是 #![no_std]
。
use unicode_width::UnicodeWidthStr;
fn main() {
let teststr = "Hello, world!";
let width = teststr.width();
println!("{}", teststr);
println!("The above string is {} columns wide.", width);
let width = teststr.width_cjk();
println!("The above string is {} columns wide (CJK).", width);
}
注意: 计算出的宽度值可能与实际渲染的列宽度不匹配。例如,女科学家表情符号由女性表情符号、零宽连接符和显微镜表情符号组成。此类 表情符号 ZWJ 序列 被认为是其组成部分宽度的总和。
extern crate unicode_width;
use unicode_width::UnicodeWidthStr;
fn main() {
assert_eq!("👩".width(), 2); // Woman
assert_eq!("🔬".width(), 2); // Microscope
assert_eq!("👩🔬".width(), 4); // Woman scientist
}
此外,损坏的组合字符序列和非常规的韩文假名序列可能具有与该包所述不同的宽度。(这不是一个详尽的列表。)
crates.io
您可以通过将以下内容添加到您的Cargo.toml
来在项目中使用此包
[dependencies]
unicode-width = "0.1.11"