首頁 > 後端開發 > Golang > 主體

為什麼我的 ANSI 顏色在 Windows 10 中不起作用?

Patricia Arquette
發布: 2024-10-26 17:43:30
原創
660 人瀏覽過

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

Ansi 顏色在 Windows 10 中不起作用?

在 Windows 領域,在控制台上顯示顏色的功能是一個相對較新的功能和驚心動魄的功能。然而,在興奮之餘,某些用戶卻遇到了一個令人費解的問題,即預期的色彩輸出突然消失了。本文旨在闡明原因並提供解決方案。

Windows 控制台顏色難題

一位這樣的使用者在執行利用 ANSI 顏色轉義的程式時遇到此問題。令人困惑的是,相同的二進位檔案在另一台筆記型電腦上正確輸出顏色。在受影響的電腦上,儘管從 Node.js 應用程式啟動時控制台視窗可以正確顯示顏色,但對於其他程式卻無法這樣做。這表明存在一些潛在的系統級不一致。

虛擬終端處理的作用

要深入研究解決方案,我們必須先理解虛擬終端處理的概念視窗。此功能在更新中引入,可啟用進階終端功能,這對於正確渲染 ANSI 顏色至關重要。不幸的是,它默認處於禁用狀態。

啟用虛擬終端處理

要解決此問題,需要在 Windows 電腦上啟用虛擬終端處理。這可以透過新增設定此選項的初始化檔案(例如 init_windows.go)來實現。以下程式碼範例示範如何執行此操作:

<code class="go">// +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)
}</code>
登入後複製

透過將此程式碼合併到您的程式中,您可以確保啟用虛擬終端處理,從而使您的應用程式能夠在Windows 10 上正確顯示ANSI 色。

以上是為什麼我的 ANSI 顏色在 Windows 10 中不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!