Получить кодировку текущей локали в C? - PullRequest
7 голосов
/ 04 октября 2011

Как найти кодировку текущей локали в C?

setlocale (LC_ALL, NULL) возвращает "en_US.UTF8", но есть ли способ получить кодировку? В /etc/locale.gen в моей системе перечислены локали и наборы символов, поэтому он не указан в названии.

1 Ответ

6 голосов
/ 04 октября 2011

Вы можете запросить различные параметры текущей локали, используя функцию nl_langinfo (3) . Кодировка получается по телефону nl_langinfo(CODESET).

Обратите внимание, что вам нужно позвонить setlocale перед использованием nl_langinfo, чтобы ваша программа знала локаль.

...