Russian Qt Forum

Qt => Общие вопросы => Тема начата: RuslanBZ от Апрель 26, 2010, 12:14



Название: Конвертировать QString
Отправлено: RuslanBZ от Апрель 26, 2010, 12:14
Как можно сконвертировать сроку вида
QString("\\x6c\\x61\\x70\\x70\\x75\\x6b\\x72\\x61\\x69\\x6e\\x65\\x2e\\x63\\x6f\\x6d") в QString("lappukraine.com") ?


Название: Re: Конвертировать QString
Отправлено: shirushizo от Апрель 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);


Название: Re: Конвертировать QString
Отправлено: zenden от Апрель 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());
 


Название: Re: Конвертировать QString
Отправлено: RuslanBZ от Апрель 26, 2010, 13:56
Все получилось.
Спасибо за ответы.


Название: Re: Конвертировать QString
Отправлено: garryHotDog от Апрель 26, 2010, 15:37
А QTextCodec разве с этим не справится!?