Top.Mail.Ru
Ответы
Аватар пользователя
2 года назад
от
Изменено

Как проверить, переключился ли терминал на заданную программой локаль или нет, в различных ОС?

Пишу свой переносимый на все платформы аналог мини-СУБД, типа 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:~$