Ansi Colors 在 Windows 10 上不起作用:修复
在最近的开发中,Windows 10 引入了一个控制台,允许通过以下方式进行彩色打印Ansi 转义序列。然而,一些用户遇到了这些颜色无法在笔记本电脑上正确显示的问题。
其中一位用户在 Windows 10.0.14393 上使用二进制文件,观察到 Ansi 彩色打印在 Nodejs 应用程序中完美运行,但不在他们自己的应用程序中。尽管删除了与控制台关联的注册表项和快捷方式并以其他用户身份运行二进制文件,问题仍然存在。
解决方案:启用虚拟终端处理
密钥解决此问题的方法是在 Windows 上启用虚拟终端处理 (VTP),这是自最近更新以来必需的。可以按照以下步骤操作:
创建初始化文件(init_windows.go):
将以下代码添加到名为 init_windows.go 的文件中:
package main import ( "os" "golang.org/x/sys/windows" ) func init() { stdout := windows.Handle(os.Stdout.Fd()) var originalMode uint32 windows.GetConsoleMode(stdout, &originalMode) windows.SetConsoleMode(stdout, originalMode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING) }
注意:此解决方案改编自此问题线程:[https://github.com/sirupsen/logrus/issues/172#issuecomment-353724264] (https://github.com/sirupsen/logrus/issues/172#issuecomment-353724264)
以上是为什么我的 ANSI 颜色在 Windows 10 上不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!