#unicode-characters #unicode #width #unicode-text #no-alloc #text

无 std unicode-width

根据 Unicode 标准附件 #11 规则确定 charstr 类型的显示宽度

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文本处理

Download history 1517655/week @ 2024-05-02 1490774/week @ 2024-05-09 1541714/week @ 2024-05-16 1483944/week @ 2024-05-23 1647138/week @ 2024-05-30 1643695/week @ 2024-06-06 1658156/week @ 2024-06-13 1652389/week @ 2024-06-20 1641022/week @ 2024-06-27 1511840/week @ 2024-07-04 1636092/week @ 2024-07-11 1636192/week @ 2024-07-18 1648312/week @ 2024-07-25 1649471/week @ 2024-08-01 1719450/week @ 2024-08-08 1340332/week @ 2024-08-15

6,654,284 每月下载量
用于 23,477 个 crate(638 个直接使用)

MIT/Apache

460KB
1K SLoC

Rust 725 SLoC // 0.1% comments Python 426 SLoC // 0.4% comments

unicode-width

Build status crates.io version Docs status

根据 Unicode 标准附件 #11 和 Unicode 标准的其他部分确定 charstr 类型的显示宽度。

此 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"

依赖项