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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Конвертировать QString  (Прочитано 3590 раз)
RuslanBZ
Гость
« : Апрель 26, 2010, 12:14 »

Как можно сконвертировать сроку вида
QString("\\x6c\\x61\\x70\\x70\\x75\\x6b\\x72\\x61\\x69\\x6e\\x65\\x2e\\x63\\x6f\\x6d") в QString("lappukraine.com") ?
Записан
shirushizo
Гость
« Ответ #1 : Апрель 26, 2010, 13:04 »

Красивого решения сразу не вижу.
Как вариант привести к char* и использовать QString fromAscii ( const char * str, int size = -1 ) или QString fromUtf8 ( const char * str, int size = -1 ).

Код:
QStringList list=QString("\\x6c\\x61\\x70\\x70\\x75\\x6b\\x72\\x61\\x69\\x6e\\x65\\x2e\\x63\\x6f\\x6d").split("\\x");
char* tmp=new char[list.size()+1];
bool ok;
for(int i=0;i<list.size();++i) tmp[i]=list.at(i).toInt(&ok,16);
tmp[list.size()]=0;
qDebug()<<QString::fromUtf8(tmp);
« Последнее редактирование: Апрель 27, 2010, 11:24 от shirushizo » Записан
zenden
Гость
« Ответ #2 : Апрель 26, 2010, 13:05 »

Код
C++ (Qt)
QString test = "\\x6c\\x61\\x70\\x70\\x75\\x6b\\x72\\x61\\x69\\x6e\\x65\\x2e\\x63\\x6f\\x6d";
QString result = QString::fromLocal8Bit(QByteArray::fromHex(test.remove("\\x").toAscii().data()).data());
 
Записан
RuslanBZ
Гость
« Ответ #3 : Апрель 26, 2010, 13:56 »

Все получилось.
Спасибо за ответы.
Записан
garryHotDog
Гость
« Ответ #4 : Апрель 26, 2010, 15:37 »

А QTextCodec разве с этим не справится!?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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