Задать вопрос
@PeroPero

Что делать с кодировкой?

Получаю ответ от веб сервера , заголовок отображается нормально но сам блок с данными в не понятной мне кодировке.
QTcpSocket *socket = new QTcpSocket();
socket->connectToHost("какой то сайт",80);
socket->write("какой то гет запрос");
//шаманю с кодировкой 
QTextCodec* defaultTextCodec = QTextCodec::codecForName("Windows-1251");
QTextDecoder *decoder = new QTextDecoder(defaultTextCodec);
//читаю ответ
    while(socket->waitForReadyRead()){
        QString HTML = decoder->toUnicode(socket->readAll());
        ui->textBrowser->append(HTML);
    }

Что получается в textBrowser
Ответ заголовок
HTTP/1.1 200 OK
Date: Thu, 16 Nov 2017 03:29:45 GMT
Content-Type: text/plain; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Last-Modified: Thu, 16 Nov 2017 03:24:45 GMT
Cache-Control: max-age=604800
Expires: Thu, 23 Nov 2017 03:29:45 GMT
Server: awex
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Request-ID: 99627facb08d5100f42946acdf9cf899
Content-Encoding: gzip
ответ где должен быть html
5a0d06d6d8652485087213.png

Если сделать в лоб и вывести в консоль Qt
qDebug()<< socket->readAll();
Вывод в консоль Qt
5a0d07d390205982803492.png

Ожидаемый вывод
124.217.198.66:80
50.205.138.65:80
104.28.27.112:80
51.254.33.179:3128
104.28.27.105:80
65.23.159.60:80
75.150.88.59:80
191.44.40.177:3128
и т.д куча прокси.
Но из за кодировки выводит что то не понятное.
Подскажите, кодировки пробовал разные ставить. И т.к я с ними не работал не шарю в этом ((( .
  • Вопрос задан
  • 997 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
IGHOR
@IGHOR Куратор тега Qt
Qt/C++ DEV/CTO
Уберите из запроса Accept-Encoding:.. и будет вам несжатый ответ.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Content-Encoding: gzip

Распаковать данные забыли
https://stackoverflow.com/a/24949005
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы