Перенос программы C с символами Юникода в Windows

Я написал программу на C, используя Code Blocks для Linux. Как вы можете видеть ниже, он имеет много «графических частей», которые несовместимы напрямую с Windows (такие как символы Юникода и цветные тексты). Мне было интересно, есть ли быстрый способ или обходной путь, чтобы эта программа правильно отображалась на компьютере с Windows без необходимости переписывать код.

#define INRED "\033[1;31m"
#define INGREEN "\033[1;32m"
#define INYELLOW "\033[1;33m"
#define INBLUE "\033[1;34m"
#define INWHITE "\033[1;37m"
#define INRESETCOLOR "\033[0m"
#define ERRORCOLOR "\033[1;31m\a"
#define WINCOLOR "\033[5;1;39m"    

#define BLOCK "\u2B24"
#define BLACKMATCH "\u25A0 "
#define WHITEMATCH "\u25A1 "

#define RBLOCK INRED BLOCK INRESETCOLOR "  "
#define GBLOCK INGREEN BLOCK INRESETCOLOR "  "
#define BBLOCK INBLUE BLOCK INRESETCOLOR "  "
#define YBLOCK INYELLOW BLOCK INRESETCOLOR "  "

#define PROMPT printf("\n> ");
#define CLEARSCR printf("\033[H\033[J");

РЕДАКТИРОВАТЬ: Вот решение проблемы с управляющими последовательностями ANSI Как заставить консоль win32 распознавать escape-последовательности ANSI/VT100? но не для неправильного отображения символов Unicode.


person stoneburner    schedule 20.11.2018    source источник
comment
Да, это не Unicode, а escape-последовательности ANSI.   -  person 500 - Internal Server Error    schedule 20.11.2018
comment
#define BLOCK "\u2B24" и то, и другое.   -  person melpomene    schedule 20.11.2018
comment
Существуют другие консоли или терминальные программы, которые могут нормально отображать последовательности Unicode и VT100. Может быть, найти и использовать один из них для своей программы?   -  person Some programmer dude    schedule 20.11.2018
comment
Спасибо, ребята, я нашел решение для управляющих последовательностей ANSI здесь: stackoverflow.com/questions/16755142/, но символы Unicode по-прежнему отображаются неправильно.   -  person stoneburner    schedule 20.11.2018
comment
@Davislor Сначала я проголосовал за закрытие, но проголосовал за повторное открытие после того, как оно было отредактировано. Посмотрим, сможем ли мы получить еще несколько голосов, чтобы снова открыть его, чтобы вы могли опубликовать правильный ответ.   -  person HostileFork says dont trust SE    schedule 20.11.2018
comment
Я думаю, они могут просто найти мой ответ на этот вопрос! Спасибо, что раскопал.   -  person Davislor    schedule 20.11.2018
comment
Ну, одно дополнение: реализация MS printf() и wprintf() имеет нестандартный спецификатор формата non-portable%S, который может быть полезен для печати UTF-8.   -  person Davislor    schedule 20.11.2018