首页 > 后端开发 > Golang > 正文

为什么我的 ANSI 颜色在 Windows 10 上不起作用?

Susan Sarandon
发布: 2024-10-28 16:58:02
原创
323 人浏览过

Why Aren't My ANSI Colors Working on Windows 10?

Ansi Colors 在 Windows 10 上不起作用:修复

在最近的开发中,Windows 10 引入了一个控制台,允许通过以下方式进行彩色打印Ansi 转义序列。然而,一些用户遇到了这些颜色无法在笔记本电脑上正确显示的问题。

其中一位用户在 Windows 10.0.14393 上使用二进制文件,观察到 Ansi 彩色打印在 Nodejs 应用程序中完美运行,但不在他们自己的应用程序中。尽管删除了与控制台关联的注册表项和快捷方式并以其他用户身份运行二进制文件,问题仍然存在。

解决方案:启用虚拟终端处理

密钥解决此问题的方法是在 Windows 上启用虚拟终端处理 (VTP),这是自最近更新以来必需的。可以按照以下步骤操作:

  1. 创建初始化文件(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)
    }
    登录后复制
  2. 在主函数中引用该文件:
    在主 Go 文件中,请务必在执行颜色之前引用 init_windows.go 文件来激活 VTP打印操作。

注意:此解决方案改编自此问题线程:[https://github.com/sirupsen/logrus/issues/172#issuecomment-353724264] (https://github.com/sirupsen/logrus/issues/172#issuecomment-353724264)

以上是为什么我的 ANSI 颜色在 Windows 10 上不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!