检查终端是否支持unicode

检查终端是否支持unicode,unicode,terminal,rust,Unicode,Terminal,Rust,我想用一些方法来完成以下工作: if支持_unicode{ 打印!(“一些unicode”); }否则{ 打印!(“ascii”); } rust中是否有任何方法可以检查输出是否支持unicode 更新 我找到了一种方法来检查设备是否支持unicode,但它不检查当前输出是否设置为正确的编码,也不检查字体是否支持全部unicode字符。如果你好奇的话,它使用板条箱,代码是 locale\u-codes::codeset::all\u-names()。包含(&String::from(“UTF-

我想用一些方法来完成以下工作:

if支持_unicode{
打印!(“一些unicode”);
}否则{
打印!(“ascii”);
}
rust中是否有任何方法可以检查输出是否支持unicode

更新 我找到了一种方法来检查设备是否支持unicode,但它不检查当前输出是否设置为正确的编码,也不检查字体是否支持全部unicode字符。如果你好奇的话,它使用板条箱,代码是

locale\u-codes::codeset::all\u-names()。包含(&String::from(“UTF-8”))
但是,正如我所说,这并不能解决我的问题


另外,如果你愿意,这里有一个更具体的例子来说明我一直遇到的问题。在VSCode集成终端(Windows 10 x64,VSCode 1.47)中,如果我运行一个打印字符的rust程序,我对答案非常感兴趣(具体关于终端)。您可以通过询问我找到的相关线程的区域设置(代码集部分)获得一些信息:;我相信现在大多数应用程序只是假设终端支持unicode,所以对于Unix来说这是一个公平的假设。在Windows上,没有那么多。@LiamBloom,我想你说的“Unicode”是指UTF-8吗?@mcarton是的,我指的是UTF-8