Есть программа которая отправляет запрос на сайт ww.site.com/search/?search=текст запроса запрос идёт в кодировке UTF-8,а на сайте стоит windows-1251 и получается крякозябла типо скайлайн можно ли как нибудь изменить запрос кодировки?
Какая версия дельфи? Это надо сразу указывать! upd: также надо сразу указывать инструментарий для работы с сетью
пишу программу поисковик на delphi 7 после ввода текста идёт обычный редирект на http://yandex.ru/yandsearch?text=
была когда то подобная проблема из за того что выводил результат в мемо а он не принимает кодировку,если выводить в мемо ,то удали его и поставь ричедит за место его ,он вроде нормик принимает кодировку
Так у него отправляется неправильно или принимается?? Проект не качал, ибо не***. И просил заголовки из сниффера а не исходники. И насколько я помню если он использует инди то она автоматом кодирует в урл.
Ты хорошо подумал прежде чем спорить со мной? Не поленился покопался нашел исходники инди и замутил такой код: PHP: procedure TForm1.Button1Click(Sender: TObject); var s: TStringList; begin s := TStringList.Create; s.Add('1=ыыы'); s.Add('2=ололо'); with TIdHTTP.Create(nil) do try Post('http://www.google.ru/', s); finally Free; end; s.Free; end; И вот что получил:
http://www.delphisources.ru/pages/faq/base/encode_url.html перечитал несколько раз,так и не понял что куда
Я не много не о том ,речь шла не о пост а гет запросе , я имел в виду ,то что при гет запросе, любое слово на русском , не будет кодироваться в url encode PS И да кстати твой пример будет работать до 2009 , 2010 версии , я так понимаю ты делал в 7 делфи
Зависит не от версии дельфи а от версии инди скорее. Делал в 2010. Версии раньше 2009 вообще никогда не юзал. Я почему то думал что раз пост кодируется то и гет тоже. Проверить даже не подумал. А тс непробиваемый. Даже с примером разобраться не может.
Да ты абсолютно прав , именно от версии Indy . ТС Тут где то выкладывал Rudi код , URL Encod'а на C++, поищи
Совместимость c Delphi 2009+, в 7 не проверял. Code: function 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; Code: ShowMessage(URLEncode('тест test 123')); Результат: [B]%D1%82%D0%B5%D1%81%D1%82%20test%20123[/B]