Windows 10 で ANSI カラー サポートを有効にする: 永続的なジレンマ
Windows 10 では、ANSI エスケープ シーケンスを使用してコンソール出力に色を追加するのは困難です。比較的最近の機能。しかし、最近、特定のマシンで ANSI カラーが正しく表示されないという特有の問題が発生しています。
状況の概要:
アプリケーションが ANSI カラーを表示しているとユーザーが報告しました。コンソールが突然機能を停止しました。アプリは他のラップトップでは意図したとおりに動作しますが、自分の Windows 10 マシン (v14393) では失敗します。
調査とトラブルシューティング:
解決策:
この問題を解決する鍵は、Windows で仮想端末処理を有効にすることにあります。この設定は、問題の原因となったアップデートで導入されました。
仮想端末処理を有効にするには、Go アプリケーションの init() 関数に次のコードを追加します。
<code class="go">import ( "golang.org/x/sys/windows" "os" ) // +build 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>
このコードコンソール モードを変更して仮想端末処理を有効にし、ANSI カラー エスケープ シーケンスが解析されて正しく表示されるようにします。
結論:
上記の解決策を実装すると、問題は解決されます。 Windows 10 で機能しない ANSI カラーの一部が修正されます。仮想端末処理を有効にすると、システムやユーザーの設定に関係なく、アプリケーションは再びコンソールに豊かな色を表示できるようになります。
以上がWindows 10 コンソールに ANSI カラーが表示されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。