Как найти кодировку текущей локали в C?
setlocale (LC_ALL, NULL) возвращает "en_US.UTF8", но есть ли способ получить кодировку? В /etc/locale.gen в моей системе перечислены локали и наборы символов, поэтому он не указан в названии.
Вы можете запросить различные параметры текущей локали, используя функцию nl_langinfo (3) . Кодировка получается по телефону nl_langinfo(CODESET).
nl_langinfo
nl_langinfo(CODESET)
Обратите внимание, что вам нужно позвонить setlocale перед использованием nl_langinfo, чтобы ваша программа знала локаль.
setlocale