crossplatform.ru

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


  Ответ в Считать из файла в массив построчно
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
thechicho Дата 29.9.2011, 19:29
  сенкс.
а как улучшить можно?
silver47 Дата 29.9.2011, 19:12
 
if(charset.toUpper() == "UTF-8")
thechicho Дата 29.9.2011, 15:24
  ы, пока до такого костыля ток додумался:

QByteArray answer = reply->readAll();

QRegExp rxCharset("charset=(.+)\"");
rxCharset.setMinimal(true);
rxCharset.indexIn(answer)
QString charset = rxCharset.cap(1);

QString answerGood;

if (charset == "Windows-1251" || charset == "windows-1251") {
    answerGood = QString::fromLocal8Bit(answer);
    qDebug() << "kodirovka windows-1251";
} else if (charset == "UTF-8" || charset == "Utf-8" || charset == "utf-8") {
    answerGood = QString::fromUtf8(answer);
    qDebug() << "kodirovka utf-8";
}


как улучшить? может как-то все проще делается?
как сравнивать без учета регистра? т.е. чтобы просто писать if (charset == "utf-8) { }
thechicho Дата 29.9.2011, 10:08
 
void MainWindow::on_pushButton_clicked()
{
    QNetworkAccessManager *qnam = new QNetworkAccessManager;
    connect(qnam, SIGNAL(finished(QNetworkReply*)), this, SLOT(download(QNetworkReply*)));
    qnam->get(QNetworkRequest(QUrl("http://mail.ru/"))); //на майл windows-1251. с utf-8 любой сайт
}

void MainWindow::download(QNetworkReply *reply)
{
QByteArray answer = reply->readAll();
ui->plainTextEdit->appendPlainText(answer);
}
Snake Дата 29.9.2011, 4:10
  Скинь минимальный проект и на какие сайты заходил
thechicho Дата 28.9.2011, 16:38
  так еще работает:

если сайт в utf-8
QString answer = QString::fromUtf8(reply->readAll());
ui->plainTextEdit->appendPlainText(answer);

если сайт в windows-1251
QString answer = QString::fromLocal8Bit(reply->readAll());
ui->plainTextEdit->appendPlainText(answer);

хелпппп :help:
thechicho Дата 28.9.2011, 15:40
  не катит, один х иероглифы :hang1:
Snake Дата 28.9.2011, 13:12
  QString answer = codec->toUnicode( reply->readAll().data() );
Snake Дата 28.9.2011, 13:08
 
Цитата(thechicho @ 28.9.2011, 12:49) *
ошибка. как исправить?
'class QByteArray' has no member named 'toAscii'


Поставь вместо toAscii() .data()
thechicho Дата 28.9.2011, 12:49
  ошибка. как исправить?
'class QByteArray' has no member named 'toAscii'
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 14:16