Russian Qt Forum
Ноябрь 25, 2024, 18:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Узнать системную кодировку  (Прочитано 2712 раз)
voltron
Гость
« : Октябрь 22, 2012, 14:13 »

Существует ли кроссплатформенный способ (LInux, MacOS, Windows) получения системной кодировки? Все, что нашел это QLocale::system(), которая возвращает системную локаль, но не кодировку; и QTextCodec::codecForLocale(), который возвращает  кодек с именем «System» не зависимо от текущей кодировки.

Нужна именно кодировка, т.е. строка вида «UTF-8», «ISO 8859-9» и т.п.
Записан
maint
Гость
« Ответ #1 : Октябрь 22, 2012, 15:08 »

в С/С++ есть функция setlocale. С ее помощью можно определить текущую кодировку.
Записан
voltron
Гость
« Ответ #2 : Октябрь 22, 2012, 20:45 »

Спасибо. Посмотрел, там возвращается несколько нестандартное (на мой взгляд) обозначение локали смешанное с данными о кодировке, причем в разных ОС результат чуть-чуть отличается
  • Linux — ru_RU.UTF-8
  • Windows — Russian_Russia.1251

Где-то есть список всех возможных значений, которые эта функция может вернуть на разных системах?
Записан
voltron
Гость
« Ответ #3 : Октябрь 24, 2012, 13:01 »

В *NIX получить кодировку можно при помощи
Код:
nl_langinfo(CODESET);
К сожалению, в Win такой код работать не будет. Ищу аналоги
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 20.