проблема с QString (кодировка?)

Модератор: Модераторы разделов

Аватара пользователя
ezheg
Сообщения: 258
Статус: джидай 3-го уровня
ОС: Mac OS X

проблема с QString

Сообщение ezheg »

короче, проблемка:
если сделать так:

Код: Выделить всё

QString st = "Абв.";
printf( "%s\n", st.latin1() );

то в консоль выведется "Абв", все правильно и на русском =)
Но если в строку QString запихнуть текст из какого-нибудь виджета, например из QListViewItem:

Код: Выделить всё

QString st = item->text(0); // текст в ячейке - русский
printf( "%s\n", st.latin1() );

то в консоль выводятся одни знаки вопроса. :(
казалось бы, один и тот же класс, QString в обоих случаях, но во втором случае не работает,подскажите в чем тут дело?
а то я уже замучался :(
Спасибо сказали:
harms
Сообщения: 6

Re: проблема с QString

Сообщение harms »

st.ascii()
либо
st.local8Bit()
либо QTextCodec на крайний случай
Спасибо сказали:
Аватара пользователя
Skull
Модератор
Сообщения: 2089
ОС: ALT Linux

Re: проблема с QString

Сообщение Skull »

Код: Выделить всё

QString st = QString::fromLocal8Bit("Абв.");
printf( "%s\n", st.local8Bit() );

QString хранит текст в Юникоде.
Skull
Спасибо сказали:
harms
Сообщения: 6

Re: проблема с QString

Сообщение harms »

а такое
QString st = "Абв.";
воспринимает как latin1 (будут кракозябры в интерфейсе, например)
Спасибо сказали: