我使用C#中的Console
API和找到的Node.js的Console
API时尝试使用控制台之间的差异命令来改变颜色('\ X1B [31米'):C#和Node.js控制台输出有什么区别?
使用Node.js的这代码:
console.log("\x1B[31mTeste");
当我使用此C#代码:
Console.Write("\x1B[31mTeste");
为什么有这种差异?
我使用C#中的Console
API和找到的Node.js的Console
API时尝试使用控制台之间的差异命令来改变颜色('\ X1B [31米'):C#和Node.js控制台输出有什么区别?
使用Node.js的这代码:
console.log("\x1B[31mTeste");
当我使用此C#代码:
Console.Write("\x1B[31mTeste");
为什么有这种差异?
节点使用https://github.com/libuv/libuv效仿的ANSI控制台。正常的Windows控制台不支持这一点,因此试图从C#做到这一点是行不通的。
在Windows 10中的控制台支持虚拟终端的序列,但是它必须通过WinAPI的'GetConsoleMode'和'SetConsoleMode第一启用'。在旧版本中,你可以使用ANSICON或ConEmu,它使用的DLL注入到挂钩WinAPI的控制台功能,如'WriteConsole'。 – eryksun
貌似的node.js一个处理转义序列(即'\ X1B [31m'),但其他控制台没有。你在问为什么第二个控制台(在Visual Studio中是这样)是按照它的方式编程的? –
是的,我知道,X1B [31米是终端改变颜色的代码..我只是不明白,为什么C#不同意这个工作。 (我将编辑我的问题,使这个更清晰),他是用AnsiCon有 – thur
@KeithNicholas ..我使用的是从Windows – thur