English | 简体中文
A command-line wrapper program that can force ANSI code to be enabled in the Windows console
Original Author: @czy-29
Latest version: v1.0.0
A command-line wrapper program that can force ANSI code to be enabled in the Windows console.
In the Windows console (whether it's cmd
or PowerShell
), if you want to use ANSI code (such as ANSI colors) properly, you need to call some Windows APIs to manually enable it.
However, some command-line programs on Windows use ANSI code but do not enable it correctly. This project, as a wrapper program, aims to force ANSI support for you on Windows. For programs that were previously unable to display ANSI code correctly, after wrapping them with this program, ANSI code will be displayed normally (command-line arguments will be passed through to the target program).
Reference links:
- nu_ansi_term::enable_ansi_support()
- Console Virtual Terminal Sequences
- When
ANSI
is enabled,nu_ansi_term::enable_ansi_support()
should be called onWindows
- Bug: Enabling
ANSI
colors fortracing
logs onWindows
requires callingnu_ansi_term::enable_ansi_support()
This is a pure binary project. You can use the following command to install:
cargo install force-ansi
Note that this will install two programs: force-ansi.exe
and abnormal-ansi.exe
.
force-ansi.exe
is our main program, which you can use on any target program.
abnormal-ansi.exe
is an example target program we provide.
You can first run abnormal-ansi
in cmd
or PowerShell
to see if the console will output garbled characters.
Then run:
force-ansi abnormal-ansi
to see if the console can render ANSI colors normally now.
The usage for other target programs is consistent, and command-line arguments are simply passed transparently.
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Github is our single source of truth, where we welcome all issues and pull requests.
We also have two downstream read-only mirrors that are automatically pushed:
As they are read-only mirrors, please do not initiate any merge or pull requests on these two platforms.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in force-ansi
by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.