2017-09-06 73 views
0

我使用C#中的Console API和找到的Node.js的Console API時嘗試使用控制檯之間的差異命令來改變顏色('\ X1B [31米'):C#和Node.js控制檯輸出有什麼區別?

使用Node.js的這代碼:

console.log("\x1B[31mTeste"); 

打印此: console with Teste in red


當我使用此C#代碼:

Console.Write("\x1B[31mTeste"); 

我得到這樣的輸出: console with some chars and Teste in default color


爲什麼有這種差異?

+0

貌似的node.js一個處理轉義序列(即'\ X1B [31m'),但其他控制檯沒有。你在問爲什麼第二個控制檯(在Visual Studio中是這樣)是按照它的方式編程的? –

+0

是的,我知道,X1B [31米是終端改變顏色的代碼..我只是不明白,爲什麼C#不同意這個工作。 (我將編輯我的問題,使這個更清晰),他是用AnsiCon有 – thur

+0

@KeithNicholas ..我使用的是從Windows – thur

回答

2

節點使用https://github.com/libuv/libuv效仿的ANSI控制檯。正常的Windows控制檯不支持這一點,因此試圖從C#做到這一點是行不通的。

+0

在Windows 10中的控制檯支持虛擬終端的序列,但是它必須通過WinAPI的'GetConsoleMode'和'SetConsoleMode第一啓用'。在舊版本中,你可以使用ANSICON或ConEmu,它使用的DLL注入到掛鉤WinAPI的控制檯功能,如'WriteConsole'。 – eryksun