Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку? / 7 сообщений из 7, страница 1 из 1
18.09.2007, 09:27:59
    #34806824
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
Я наивно полагал, что в текущей локали. Оказалось, что это не так.
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
18.09.2007, 17:33:56
    #34809037
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
Сделай
Код: 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
21.09.2007, 10:29:37
    #34816780
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
Проверил
Код: 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
21.09.2007, 12:48:51
    #34817403
v6y
v6y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
ZmeisheКуда ещё копнуть?
В данной ситуации (ты судя по всему выводишь в консоль), если у тебя QT3, надо полагать в сторону метода QString::utf8():
Код: plaintext
1.
std::cout << (const char *) (QDate( 2007 ,  8 ,  1 ).toString("MMMM yyyy г").utf8()) << std::endl
...
Рейтинг: 0 / 0
21.09.2007, 15:13:28
    #34818188
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
Спасибо. Это то, что надо.

PS
v6y(ты судя по всему выводишь в консоль)
Я в OpenOffice вывожу. Он у меня на сервере в качестве генератора отчётов трудится. К нему на API через socket обращаться можно.
Занятная штука знаете ли.
...
Рейтинг: 0 / 0
08.10.2007, 13:09:07
    #34853820
crocus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
Скинь пример, если не трудно, как в ОО отправляешь.
...
Рейтинг: 0 / 0
08.10.2007, 15:52:13
    #34854457
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку?
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
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt: В какой кодировке функция toString("MMMM yyyy") класса QDate выдаёт строку? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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