powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
7 сообщений из 7, страница 1 из 1
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
    #34806824
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я наивно полагал, что в текущей локали. Оказалось, что это не так.
SUSE 10.1
locale
LANG=ru_RU.UTF-8
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=

QTextCodec::locale() тоже выдаёт ru_RU.UTF-8
год работаю в utf8, а тут понадобилось вывести полное название месяца QDate(2007, 8, 1).toString("MMMM yyyy г") выдаёт "??????? 2007 г" Поскольку буква 'г' в utf-8, то она вывелась нормально, а в какой кодировке был выдан 'Август' ?
Функция QDate::longMonthName (8) тоже выдаёт ?????? вместо Август.
?
...
Рейтинг: 0 / 0
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
    #34809037
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай
Код: plaintext
1.
2.
3.
4.
QLocale loc = QLocale::system();
QString country_string = QLocale::countryToString( loc.country());
QString lang_string = QLocale::languageToString( loc.language());
... etc
Узнаешь как именно называется твоя локаль по мнению QT.
...
Рейтинг: 0 / 0
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
    #34816780
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
QLocale loc = QLocale::system();
QString country_string = QLocale::countryToString( loc.country());
QString lang_string = QLocale::languageToString( loc.language());
QString name_string = loc.name( );

cout << "country " << country_string << endl;
cout << "lang " << lang_string << endl;
cout << "name " << name_string << endl;

loc = QLocale::c();
country_string = QLocale::countryToString( loc.country());
lang_string = QLocale::languageToString( loc.language());
name_string = loc.name( );

cout << "country " << country_string << endl;
cout << "lang " << lang_string << endl;
cout << "name " << name_string << endl;
Получил
QLocalesystem();countryRussianFederationlangRussiannameru_RU

QLocalec();countryDefaultlangCnameC

Легче не стало.
Куда ещё копнуть?
...
Рейтинг: 0 / 0
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
    #34817403
Фотография v6y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZmeisheКуда ещё копнуть?
В данной ситуации (ты судя по всему выводишь в консоль), если у тебя QT3, надо полагать в сторону метода QString::utf8():
Код: plaintext
1.
std::cout << (const char *) (QDate( 2007 ,  8 ,  1 ).toString("MMMM yyyy г").utf8()) << std::endl
...
Рейтинг: 0 / 0
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
    #34818188
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Это то, что надо.

PS
v6y(ты судя по всему выводишь в консоль)
Я в OpenOffice вывожу. Он у меня на сервере в качестве генератора отчётов трудится. К нему на API через socket обращаться можно.
Занятная штука знаете ли.
...
Рейтинг: 0 / 0
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
    #34853820
crocus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скинь пример, если не трудно, как в ОО отправляешь.
...
Рейтинг: 0 / 0
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
    #34854457
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crocusСкинь пример, если не трудно, как в ОО отправляешь.

Welcome
http://community.i-rs.ru/
http://rsdn.ru/article/openoffice/ooautomation.xml
http://wiki.services.openoffice.org/wiki/Calc_API_Programming
http://api.openoffice.org
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]