Skip to content

Displayed width of Unicode characters and strings according to UAX#11 rules.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

unicode-rs/unicode-width

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d6c1554 · May 20, 2024
Apr 30, 2024
Apr 23, 2024
May 10, 2024
May 10, 2024
May 10, 2024
Apr 23, 2024
Apr 14, 2015
May 20, 2024
Apr 14, 2015
Apr 14, 2015
May 20, 2024

Repository files navigation

unicode-width

Build status crates.io version Docs status

Determine displayed width of char and str types according to Unicode Standard Annex #11 and other portions of the Unicode standard.

This crate is #![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);
}

NOTE: The computed width values may not match the actual rendered column width. For example, the woman scientist emoji comprises of a woman emoji, a zero-width joiner and a microscope emoji. Such emoji ZWJ sequences are considered to have the sum of the widths of their constituent parts:

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
}

Additionally, defective combining character sequences and nonstandard Korean jamo sequences may be rendered with a different width than what this crate says. (This is not an exhaustive list.)

crates.io

You can use this package in your project by adding the following to your Cargo.toml:

[dependencies]
unicode-width = "0.1.11"

About

Displayed width of Unicode characters and strings according to UAX#11 rules.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published