В GUI, я так понимаю, проблемы кодировок нет? Т.е. проблема чисто виндовой консоли, а не приложения.
Я так понял, да, хотя серьёзного тестирования по этой теме не делал - по умолчанию многое пишу на английском, чтобы избежать возможных проблем.
Кстати, вот, специально пишу в блокноте Windows 10:
#include <locale.h>
#include <stdio.h>
int main (void)
{
printf("123 Text Текст\n");
char* p_locale = setlocale(LC_ALL, "");
printf("123 Text Текст\n");
printf("%s", p_locale);
return 0;
}
Компиляция в tcc, вывод в консоли:
123 Text ╥хъёЄ
123 Text Текст
Russian_Russia.1251
Результат: получается блокнот работает в cp1251, консоль изначально в cp866, после вызова setlocale переключает консоль в cp1251? Хотя вызов без параметра по идее должен возвращать текущую системную локаль, а не изменять её.
Хорошо, а если кириллицей не ограничиваться? Возможно есть более прямой путь?