检查 Rust 终端是否支持 unicode

Lia*_*oom 5 unicode terminal rust

我想要某种方法来基本上执行以下操作:

\n
if supports_unicode {\n    print!("some unicode");\n} else {\n    print!("ascii");\n}\n
Run Code Online (Sandbox Code Playgroud)\n

rust 有没有办法检查输出是否支持 unicode?

\n

更新

\n

我找到了一种方法来检查设备是否支持 unicode,但它不会检查当前输出是否设置为正确的编码,也不检查字体是否支持全部 unicode 字符。如果您好奇,它使用 crate locale-codes 0.3.0,代码是

\n
locale_codes::codeset::all_names().contains(&String::from("UTF-8"))\n
Run Code Online (Sandbox Code Playgroud)\n

但是,正如我所说,这并不能解决我的问题

\n

另外,如果您愿意,这里是我遇到的问题的更具体示例。在 VSCode 集成终端(Windows 10 x64、VSCode 1.47)中,如果我运行打印字符 ( U+1D465) 的 Rust 程序,我会得到各种结果,例如:

\n
    \n
  • 它实际上打印了正确的字符
  • \n
  • 它打印 \xef\xbf\xbd
  • \n
  • 它什么也不打印
  • \n
  • 它打印 ( U+1D435)
  • \n
\n

我希望这个例子有帮助。

\n