我使用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