Я пытаюсь генерировать цветной консольный вывод с помощью ANSI escape codes со следующей минимальной C# программы:ANSI-раскраска консоль Вывод с .NET
using System;
// test.cs
class foo {
static void Main(string[] args) {
Console.WriteLine("\x1b[36mTEST\x1b[0m");
}
}
Я бег Ansicon v1.66 на Windows 7 x64 с csc.exe (Microsoft (R) Visual C# компилятор версии 4.6.0081.0).
Цветной выход прекрасно работает в этой конфигурации; Ansicon сам работает безупречно.
Для перепроверки я использую Node.js Однострочник, который 100% эквивалентно C# программы:
// test.js
console.log("\x1b[36mTEST\x1b[0m");
И, еще более простой, ручной созданный текстовый файл:
Оба из которых, правильно сделать ожидаемую вещь: Печать чирка -colored строки "TEST":
Только файл test.exe, который я построил с помощью csc, печатает что-то еще. Зачем?
его не очень правильный код побега в C#, см: https: // MSDN. microsoft.com/en-us/library/h21280bw.aspx Похоже, что строка '\ x1b' превращается в непечатаемый символ перед выходом на консоль, а остальная часть выводится как-есть. Если вы хотите попробовать выводить необработанный текст, добавьте строку с символом '@', aka: 'Console.WriteLine (@" \ x1b [36mTEST \ x1b [0m ");' –
@RonBeyer Проведенный это действительный escape-код. Это символ ASCII ESC. – Tomalak
@Tomalak Как вы ожидаете печати символа ESC? –