crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Неравенство строк
DAVID
  опции профиля:
сообщение 12.5.2014, 12:22
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 9.3.2014
Пользователь №: 4075

Спасибо сказали: 0 раз(а)




Репутация:   0  


Привет всем!
Не могу понять в чем ошибка:

main.cpp
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTranslator translator;
    translator.load("qt_ru", QApplication::applicationDirPath() + "/");
    a.installTranslator(&translator);

    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForTr(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForLocale(codec);

    qW_my_class w;
    w.show();
    
    return a.exec();
}


widget.h
class qW_my_class : public QWidget
{
    Q_OBJECT

public:

    QWebView *qWV_ob;
    QWebPage *qWP_ob;
    QString   qS_ob;

    qW_my_class (QWidget *parent = 0) : QWidget (parent)
    {
        qWV_ob = new QWebView;
        qWV_ob->load (tr ("http://www.yandex.ru"));

        qWP_ob = new QWebPage (qWV_ob->page());
        connect (qWP_ob->mainFrame(), SIGNAL(loadFinished (bool)), SLOT(mySlotLoadFinished (bool)));
        qWP_ob->mainFrame()->load (tr ("http://www.yandex.ru"));

        QHBoxLayout *qHBL_ley = new QHBoxLayout;
        qHBL_ley->addWidget (qWV_ob);
        setLayout (qHBL_ley);
    }

public slots:

    void mySlotLoadFinished (bool ok)
    {
        if (ok)
        {
            qS_ob = qWV_ob->page()->mainFrame()->documentElement().document().toPlainText();

            QStringList qSL_ob = qS_ob.split(tr ("\n"));

            QString qS_ob_2 = tr("Сделать Яндекс стартовой страницей");

            if (qSL_ob.at(0) == qS_ob_2)
                qDebug() << tr ("YES !!!");
            else
                qDebug() << qSL_ob.at(0) << " != " << qS_ob_2;

            // "Сделать Яндекс стартовой страницей"  !=  "Сделать Яндекс стартовой страницей"
        }
        else qDebug() << tr ("don't OK!");
    }
};


qDebug() выводит следующее: "Сделать Яндекс стартовой страницей" != "Сделать Яндекс стартовой страницей"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 12.5.2014, 12:40
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Убедись, что у тебя файл widget.h сохранён в UTF-8, а не в какой-нибудь cp1251
И попробуй так
if (qSL_ob.at(0).toUtf8() == qS_ob_2.toUtf8())
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DAVID
  опции профиля:
сообщение 12.5.2014, 12:50
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 9.3.2014
Пользователь №: 4075

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(igor_bogomolov @ 12.5.2014, 13:40) *
Убедись, что у тебя файл widget.h сохранён в UTF-8, а не в какой-нибудь cp1251
И попробуй так
if (qSL_ob.at(0).toUtf8() == qS_ob_2.toUtf8())

Не помогло.
Тот же самый вывод
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 12.5.2014, 14:07
Сообщение #4


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(DAVID @ 12.5.2014, 13:50) *
Не помогло.
Тот же самый вывод
Понятно. У тебя строка записана через пробел. То что дёргаешь со страницы Яндекса написано через &nbsp; (No-break space)


Можно записать так
QString qS_ob_2 = tr("Сделать%1Яндекс%2стартовой%3страницей").arg(QChar(0xA0)).arg(QChar(0xA0)).arg(QChar(0xA0));
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DAVID
  опции профиля:
сообщение 12.5.2014, 14:16
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 9.3.2014
Пользователь №: 4075

Спасибо сказали: 0 раз(а)




Репутация:   0  


А можно ли как нибудь перевести страницу Яндекса в обычный текст?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 17.1.2021, 17:58