如何测试控制台是否支持 ANSI 颜色代码?

How to test if console supports ANSI color codes?

我使用基于 fmt 的记录器,可选择彩色打印 - 这依赖于 ANSI 颜色命令。

不幸的是,在 Windows 10 上它默认被禁用。我知道如何启用它,但我仍然想了解如何测试控制台是否支持 ANSI 命令。有人知道吗?

在 Windows 上,您可以 get/set 通过 checking/setting 带有 SetConsoleMode() or GetConsoleMode()ENABLE_VIRTUAL_TERMINAL_PROCESSING 标志支持 ANSI 颜色。

还有 HKEY_CURRENT_USER\Console\VirtualTerminalLevel 注册表项用于 global virtual terminal settings. See also https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences

在*nix上你可以使用以下方式