Crate utf8_supported

Source
Expand description

§utf8-supported

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();
}

Enums§

Utf8Support

Traits§

CommandUtf8Ext
A trait for setting the locale of a subprocess to C.

Functions§

utf8_supported
Determine the UTF-8 support of the current locale.