При использовании setlocale не выводится цветной текст C++
using namespace std;
int main() {
// Коды цветов
const char* colors[] = {
"\u001B[31m", // Красный
"\u001B[32m", // Зеленый
"\u001B[33m", // Желтый
"\u001B[34m", // Синий
"\u001B[35m", // Маджента
"\u001B[36m", // Голубой
};
// Печать радужного текста
for (int i = 0; i < 6; i++) { // уменьшаем до 6
cout << colors[i] << "Привет радуга" << endl;
}
// Сброс цвета
cout << "\u001B[0m" << endl;
return 0;
}
Выводится какие-то кракозябры:
╧ЁштхЄ Ёрфєур
╧ЁштхЄ Ёрфєур
╧ЁштхЄ Ёрфєур
╧ЁштхЄ Ёрфєур
╧ЁштхЄ Ёрфєур
╧ЁштхЄ Ёрфєур
А если добавить setlocale
using namespace std;
int main() { setlocale(LC_ALL, "ru_RU.UTF-8");
// Коды цветов
const char* colors[] = {
"\u001B[31m", // Красный
"\u001B[32m", // Зеленый
"\u001B[33m", // Желтый
"\u001B[34m", // Синий
"\u001B[35m", // Маджента
"\u001B[36m", // Голубой
};
// Печать радужного текста
for (int i = 0; i < 6; i++) { // уменьшаем до 6
cout << colors[i] << "Привет радуга" << endl;
}
// Сброс цвета
cout << "\u001B[0m" << endl;
return 0;
}
то-есть текст как-бы выводится, но его почему-то не видно.
Почему так? И как это исправить ?