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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как узнать системную кодировку (локаль) в Qt 4, Qt 5?  (Прочитано 3824 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Январь 02, 2014, 14:13 »

Здравствуйте!

Пишу кроссплатформенный проект. Мне нужно узнать системную кодировку. То есть:

- В Linux с UTF8 - знать, что кодировка "utf-8";
- В Linux/BSD с KOI8-R - знать, что кодировка "koi8-r";
- В Windows с CP1251 - знать, что кодировка "cp1251".

Вот как это узнать? Пытался через QLocale, но там нет методов получения кодировки, там можно только получить язык и языковые настройки.

А как узнать системную кодировку, причем сделать это кроссплатформенно?
Записан

Собираю информацию по крупицам
http://webhamster.ru
maint
Гость
« Ответ #1 : Январь 02, 2014, 14:46 »

я делаю где то так, правда для mingw. Раньше это срабатывало для VS2005 и Borland. Евли ошибка, то к функциям POSIX, вроде нужно добавить подчеркивание перед функцией
Код:
    char *s;

    s = getenv("LC_ALL");
    if (s == NULL || s[0] == '\0') s = getenv("LC_CTYPE");
    else if (s == NULL || s[0] == '\0') s = getenv("LANG");
    else s = "C";
« Последнее редактирование: Январь 02, 2014, 15:13 от maint » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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