ホームページ  >  記事  >  バックエンド開発  >  ANSI カラーが Windows 10 で機能しないのはなぜですか?

ANSI カラーが Windows 10 で機能しないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-26 17:43:30660ブラウズ

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

Windows 10 で Ansi Colors が機能しない?

Windows の領域では、コンソールに色を表示する機能は比較的新しいものです。そしてスリル満点の機能。しかし、興奮のさなか、一部のユーザーは、予期したカラー出力が突然消えるという不可解な問題に遭遇しました。この記事は、原因を解明し、解決策を提供することを目的としています。

Windows コンソール カラーの難問

このようなユーザーの 1 人は、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。