Как проверить, переключился ли терминал на заданную программой локаль или нет, в различных ОС?
Пишу свой переносимый на все платформы аналог мини-СУБД, типа sqlite.
Допиливаю одинаковое отображение данных в консоли в Винде, Линухе и Андроиде. Везде выводит текст по разному.
Как проверить, сработало ли переключение локали в конкретной ОС?
Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
#include<stdio.h>
#include<locale.h>
int main()
{
char *android="C.UTF-8",
*windows="Russian",
*debian="ru_RU.UTF-8";
char *tst=setlocale(LC_ALL,android);
if(tst) printf("\n%s", tst);
else printf("locale not set");
return 0;
}
chcp windows
В Debian - утилитой locale
123456789101112131415161718
user@home:~$ locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
user@home:~$