Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2012, 02:09   #1
darkblood0202
Начинающий
Пользователь
 
Регистрация: 22.04.2012
Сообщений: 34
Восклицание Русский текст запроса IdHTTP

Код:
IdHTTP1->Get("http://yandex.ru/yandsearch?text=текст", result);
result->SaveToFile("ya.html");
вместо кириллицы в запросе отправляются знаки вопроса
Как исправить проблему ?
Всё гениальное - просто!
darkblood0202 вне форума Ответить с цитированием
Старый 04.05.2012, 07:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
IdHTTP1->Get("http://yandex.ru/yandsearch?text="+AnsiToUtf8("текст"), result);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.05.2012, 13:17   #3
darkblood0202
Начинающий
Пользователь
 
Регистрация: 22.04.2012
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
IdHTTP1->Get("http://yandex.ru/yandsearch?text="+AnsiToUtf8("текст"), result);
не работает так, уже пробовал
Всё гениальное - просто!
darkblood0202 вне форума Ответить с цитированием
Старый 04.05.2012, 13:28   #4
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Код:
TStream *result;
UnicodeString a = "http://yandex.ru/yandsearch?text=";
UnicodeString b = "text";
UnicodeString c = a+b;
IdHTTP1->Get(c, result);
У меня так компилиться, на счет результата не знаю.
Get на плюс ругался внутри запроса.
Drugnir вне форума Ответить с цитированием
Старый 04.05.2012, 13:45   #5
darkblood0202
Начинающий
Пользователь
 
Регистрация: 22.04.2012
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Drugnir Посмотреть сообщение
Код:
TStream *result;
UnicodeString a = "http://yandex.ru/yandsearch?text=";
UnicodeString b = "text";
UnicodeString c = a+b;
IdHTTP1->Get(c, result);
У меня так компилиться, на счет результата не знаю.
Get на плюс ругался внутри запроса.
так даже пытаться не буду, не сработает, вместо русского все равно будут вопросики.
Всё гениальное - просто!
darkblood0202 вне форума Ответить с цитированием
Старый 04.05.2012, 14:45   #6
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

У меня что-то вообще такой код страницу не сохраняет, только готовые файлы(jpg, gif и т.д.).
http://www.cyberforum.ru/cpp-builder/thread45031.html здесь обсуждалось.
Drugnir вне форума Ответить с цитированием
Старый 04.05.2012, 15:13   #7
darkblood0202
Начинающий
Пользователь
 
Регистрация: 22.04.2012
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Drugnir Посмотреть сообщение
У меня что-то вообще такой код страницу не сохраняет, только готовые файлы(jpg, gif и т.д.).
http://www.cyberforum.ru/cpp-builder/thread45031.html здесь обсуждалось.
мне файл должен прийти,
мне не нужно код страницы сохранять, это для проверки, правильная ли кодировка.

у тебя страницу не сохраняет потому что это часть кода, объяви TMemoryStream *result = new TMemoryStream();

В той теме, что ты дал описано как сделать это через wininet, у меня и так через wininet.
Мне нужен способ через компоненты indy
Всё гениальное - просто!
darkblood0202 вне форума Ответить с цитированием
Старый 04.05.2012, 15:16   #8
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Делал так, не сохраняет:
Код:
UnicodeString URL_DOWNLOAD = "http://yandex.ru";
UnicodeString FILE_NAME = "444444.htm";
TFileStream* FILE_STREAM = new TFileStream(FILE_NAME, fmCreate | fmOpenWrite);
IdHTTP1->Get(URL_DOWNLOAD, FILE_STREAM);
delete FILE_STREAM;
А вот так, сохраняет:
Код:
UnicodeString URL_DOWNLOAD = "http://www.programmersforum.ru/images/1070/buttons/report.gif";
UnicodeString FILE_NAME = "444444.gif";
TFileStream* FILE_STREAM = new TFileStream(FILE_NAME, fmCreate | fmOpenWrite);
IdHTTP1->Get(URL_DOWNLOAD, FILE_STREAM);
delete FILE_STREAM;
Drugnir вне форума Ответить с цитированием
Старый 04.05.2012, 15:25   #9
darkblood0202
Начинающий
Пользователь
 
Регистрация: 22.04.2012
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Drugnir Посмотреть сообщение
Делал так, не сохраняет:
Код:
UnicodeString URL_DOWNLOAD = "http://yandex.ru";
UnicodeString FILE_NAME = "444444.htm";
TFileStream* FILE_STREAM = new TFileStream(FILE_NAME, fmCreate | fmOpenWrite);
IdHTTP1->Get(URL_DOWNLOAD, FILE_STREAM);
delete FILE_STREAM;
А вот так, сохраняет:
Код:
UnicodeString URL_DOWNLOAD = "http://www.programmersforum.ru/images/1070/buttons/report.gif";
UnicodeString FILE_NAME = "444444.gif";
TFileStream* FILE_STREAM = new TFileStream(FILE_NAME, fmCreate | fmOpenWrite);
IdHTTP1->Get(URL_DOWNLOAD, FILE_STREAM);
delete FILE_STREAM;
Код:
void __fastcall TForm1::btnClick(TObject *Sender)
{
TMemoryStream *result = new TMemoryStream();
result->Clear();
ind->HandleRedirects=true;
ind->Get("http://yandex.ru/yandsearch?text=123абв, result);
result->SaveToFile("yandex.html");
}
вот рабочий пример, русские символы превращаются в "?"
Всё гениальное - просто!
darkblood0202 вне форума Ответить с цитированием
Старый 04.05.2012, 15:27   #10
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Может так заработает?

Код:
#include "idURI.hpp"


TIdURI* u = new TIdURI("");
String str = u->URLEncode("http://yandex.ru/yandsearch?text=текст");
IdHTTP1->Get(str, stream);
delete u;
тут обсуждалось
Знающий не говорит, говорящий не знает (С) Лао Цзы

Последний раз редактировалось Stilet; 04.05.2012 в 19:35. Причина: добавил ссылку
Krok27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Русский текст в графике Kosт Паскаль, Turbo Pascal, PascalABC.NET 5 15.06.2011 10:22
Idhttp и параметры запроса andrejjka Работа с сетью в Delphi 3 07.02.2011 06:57
IdHTTP не видит русский текст TwiX Работа с сетью в Delphi 2 01.06.2010 23:41
idHTTP. Пропадают байты запроса !!! IvanBegin Работа с сетью в Delphi 4 08.02.2010 15:53
[Idhttp] Приостановка get-запроса EaRLL Работа с сетью в Delphi 3 27.09.2009 18:43