Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как применить TEncoding.UTF8 вместе с TIdHTTP? Как применить TEncoding.UTF8 вместе с TI 
:(
    Опции темы
Pcrepair
Дата 19.3.2012, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Добрый день. Есть модуль на базе TIdHTTP (ИНДИ10 + РАД2010), вводим запрос в кирилице, нажимаем кнопочку и получаем ответ от яндекса.

Код

/////////////////////////////////////////////////////
    function URLEncode(const Url: Utf8String): string;
///////////////////////////////////////////
var
  Form1: TForm1;
implementation
{$R *.dfm}
const
  strSearch = 'http://yandex.ru/yandsearch?text=';
procedure TForm1.Button1Click(Sender: TObject);
var
  mStream: TStringStream;
  T : TStringList;
  URL : string;
  Search : string;
begin
 mStream := TStringStream.Create;
 T := TstringList.Create;
 Search := URLEncode(Edit1.Text);
 URL := strSearch + Search + '&lr=35';
 idHttp1 := TIdHTTP.Create(nil);
   try
    idHttp1.Request.UserAgent := 'Opera/9.50 (Windows NT 5.1; U; MRA 5.6 (build 03278); ru)';
    idHttp1.Get(URL, mStream);
    T.Text := UTF8ToString(mStream.DataString);
    Memo1.Lines := T;
    finally
    mStream.Free;
   URL := '';
   T.Free;
 end;
end;

function TForm1.URLEncode(const Url: Utf8String): string;
var
  I: Integer;
begin
  Result := '';
  for I := 1 to Length(Url) do
  begin
    if CharInSet(Url[I], ['A'..'Z', 'a'..'z', '0'..'9', '-', '=', '&', ':', '/', '?', ';', '_']) then
      Result := Result + Utf8ToAnsi(Url[I])
    else
      Result := Result + '%' + IntToHex(Ord(Url[I]), 2);
  end;
end;

end.


Все работает, но хорошо бы обойтись без function TForm1.URLEncode(const Url: Utf8String): string;, если это возможно. Вроде есть в ИНДИ10 что то типа TEncoding.UTF8 или как то там в автомате идет перекодировка. Никто не в курсе?
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
Snowy
Дата 20.3.2012, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Код

url := IdHTTP1.URL.URLEncode('http://...', TEncoding.UTF8);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0415 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.