带有颜色的控制台对于Windows来说是相当新的和令人兴奋的: - )
ex.Message
...
......突然间它停止了工作。或至少停在我的笔记本电脑上,Windows 10.0.14393
在我的机器上失败的应用程序在一个控制台中执行,即nodejs应用程序显示颜色,同一个二进制文件在另一台笔记本电脑上以正确的颜色运行。
golang
I wrote some programs that printed using the ansi colour escapes and all was good
左上角,控制台节点输出,左下角,我的应用失败,右侧vscode
httpDump.exe是此演示的名称(如果它令人困惑)
它在vscode集成终端窗口中正确显示。
我尝试删除
fmt.Println("\033[31mSome Text\033[0m")
注册表项并重新启动(多次)。我删除了可能有设置的快捷方式。我尝试在此计算机上以另一个用户身份运行(无效)
我欢迎任何提示。
答案 0 :(得分:0)
自该更新以来,您必须在Windows上启用虚拟终端处理。
我通常添加一个文件init_windows.go
,该文件在Windows中进行设置,但也与其他操作系统兼容:
// +build windows
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
复制