C#和Node.js控制台输出之间有什么区别?

C#和Node.js控制台输出之间有什么区别?,c#,node.js,cmd,console-application,console.log,C#,Node.js,Cmd,Console Application,Console.log,我正在使用C#中的ConsoleAPI,并在尝试使用Console命令更改颜色时发现Node.js中的ConsoleAPI之间存在差异(`\x1B[31m'): 使用Node.js执行以下代码: console.log("\x1B[31mTeste"); 打印此文件: 当我使用此C#代码时: 我得到这个输出: 为什么会有这种差异?节点用于模拟ANSI控制台。普通windows控制台不支持这一点,因此尝试从C#执行此操作将不起作用。节点用于模拟ANSI控制台。普通windows控制台不

我正在使用C#中的
Console
API,并在尝试使用Console命令更改颜色时发现Node.js中的
Console
API之间存在差异(`\x1B[31m'):

使用Node.js执行以下代码:

 console.log("\x1B[31mTeste");
打印此文件:


当我使用此C#代码时:

我得到这个输出:



为什么会有这种差异?

节点用于模拟ANSI控制台。普通windows控制台不支持这一点,因此尝试从C#执行此操作将不起作用。

节点用于模拟ANSI控制台。普通windows控制台不支持这一点,因此尝试从C#执行此操作将不起作用。

是的,我知道x1B[31m是终端更改颜色的代码。我不明白为什么c#不能处理这个问题。(我将编辑我的问题以使其更清楚)@KeithNicholas他在那里使用AnsiCon..我在使用Windows中的默认cmd我知道..但是node模拟控制台,所以您需要在控制台中执行相同的操作。写入..node使用是的,我知道x1B[31m是终端更改颜色的代码..我只是不明白为什么c不使用这个。(我将编辑我的问题以使其更清楚)@KeithNicholas他在那里使用AnsiCon..我在使用Windows中的默认cmd我知道..但是node模拟控制台,所以您需要在控制台中执行相同的操作。写入..node在Windows 10中使用控制台支持虚拟终端序列,但必须首先通过WinAPI
GetConsoleMode
SetConsoleMode启用
。在旧版本中,您可以使用ANSICON或ConEmu,它们使用DLL注入来钩住WinAPI控制台函数,如
WriteConsole
。Windows 10中的控制台支持虚拟终端序列,但必须首先通过WinAPI
GetConsoleMode
SetConsoleMode
启用。在旧版本中,您可以使用ANSICON或ConEmu,使用DLL注入钩住WinAPI控制台函数,如
WriteConsole
Console.Write("\x1B[31mTeste");