Как извлечь символ из QCString?
Привет всем!!!
Столкнулся с такой проблемой.
Имеется строка QString, в которой есть не latin1 символы (в моем случае,
кириллица). Эта строка, как и подобает Qt , закодирована в utf16. Нужно
взять из этой стоки кириллический символ и преобразовать его в
hex-формат по ascii таблице, т. е. однобайтной, а не двубайтной, как в
utf16.
Мое решение:
1. Преобразую QString в utf8 - QString::utf8(). Получаю QCString.
2. Извлекаю из QCString нужный символ и преобразую его в int
3. Полученный int преобразую в hex.
Но вот проблема: в п. 2 нельзя "нормально" извлечь символ. Ему
соответсвуют два непонятных по значению байта, т. е. int(QCString[...]) < 0.
Что делать в этом случае?
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 27581; Возраст листа: 1117; Участников: 1697
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/580802
Здравствуйте Роман
В сообщении от 13 августа 2006 23:11 Роман написал(a):
Делал что-то подобное для qt2 :
-544,7 +544,8 @@
highlight_ = (oldValue != QString(data));
}
- QListViewItem::setText(column, data);
+
+ QListViewItem::setText(column,
QString::fromLocal8Bit(data.ascii(),-1) );
repaint();
}