utf8-supported

Crates.ioutf8-supported
lib.rsutf8-supported
version1.0.0
created_at2025-05-14 20:00:28.776687+00
updated_at2025-08-15 19:51:43.298525+00
descriptionDetermine the UTF-8 support of the current locale.
homepage
repositoryhttps://github.com/mmastrac/utf8-supported
max_upload_size
id1673917
size27,619
Matt Mastracci (mmastrac)

documentation

README

utf8-supported

Crates.io Documentation

A Rust library for determining the UTF-8 support of the current terminal locale.

Example:

use std::io::Write;

match utf8_supported::utf8_supported() {
    utf8_supported::Utf8Support::UTF8 => println!("is_utf8: UTF-8 ✅"),
    utf8_supported::Utf8Support::ASCII => println!("is_utf8: ASCII"),
    utf8_supported::Utf8Support::Latin1 => std::io::stdout()
        .write_all(b"is_utf8: Latin 1: \xb2\xb3\xb9\n")
        .unwrap(),
    utf8_supported::Utf8Support::Other => println!("is_utf8: Other"),
    utf8_supported::Utf8Support::Unknown => println!("is_utf8: Unknown"),
}

This library can also be used to ensure that a child process runs with the C locale:

#[cfg(unix)] 
{
    use std::process::Command;
    use utf8_supported::CommandUtf8Ext;

    let mut cmd = Command::new("ls");
    if utf8_supported::utf8_supported() != utf8_supported::Utf8Support::UTF8 {
        cmd.set_c_locale();
    }
    cmd.output().unwrap();
}
Commit count: 13

cargo fmt