crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Считать из файла в массив построчно, помогите ньюбу
thechicho
  опции профиля:
сообщение 28.9.2011, 12:49
Сообщение #11


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

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




Репутация:   0  


ошибка. как исправить?
'class QByteArray' has no member named 'toAscii'
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Snake_*
сообщение 28.9.2011, 13:08
Сообщение #12





Гости








    


Цитата(thechicho @ 28.9.2011, 12:49) *
ошибка. как исправить?
'class QByteArray' has no member named 'toAscii'


Поставь вместо toAscii() .data()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Snake_*
сообщение 28.9.2011, 13:12
Сообщение #13





Гости








    


QString answer = codec->toUnicode( reply->readAll().data() );
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
thechicho
  опции профиля:
сообщение 28.9.2011, 15:40
Сообщение #14


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

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




Репутация:   0  


не катит, один х иероглифы :hang1:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
thechicho
  опции профиля:
сообщение 28.9.2011, 16:38
Сообщение #15


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

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




Репутация:   0  


так еще работает:

если сайт в 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:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Snake
  опции профиля:
сообщение 29.9.2011, 4:10
Сообщение #16


Новичок


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

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




Репутация:   0  


Скинь минимальный проект и на какие сайты заходил
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
thechicho
  опции профиля:
сообщение 29.9.2011, 10:08
Сообщение #17


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

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




Репутация:   0  


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);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
thechicho
  опции профиля:
сообщение 29.9.2011, 15:24
Сообщение #18


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

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




Репутация:   0  


ы, пока до такого костыля ток додумался:

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) { }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 29.9.2011, 19:12
Сообщение #19


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

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




Репутация:   6  


if(charset.toUpper() == "UTF-8")
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
thechicho
  опции профиля:
сообщение 29.9.2011, 19:29
Сообщение #20


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

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




Репутация:   0  


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

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


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




RSS Текстовая версия Сейчас: 20.4.2024, 13:25