Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Post/get неверная кодировка


Encore ©   (2009-10-27 13:49:00) 

var
params,responseres:tstringlist;
s:string;
begin
params:=TStringList.Create;
responseres:=TStringList.Create;
try
params.Add('Login=мойлогин');

params.Add('Domain=мойдомен');
params.Add('Password=мойпас');
responseres.Text:=idhttp1.Post(' http://win.mail.ru/cgi-bin/auth',params);
finally
params.free;
responseres.free;
s:=idhttp1.get(' http://my.mail.ru/мойдомен/мойпас');
memo1.Lines.Add(s);
авторизация проходит на 5+, получаю нужную мне страницу, перемещаю ее код в мемо, а там каракули вместо русских сиволов..
подскажите где поправить кодировку, ах и еще на 7 дельф была проблема с куками но аналогичный код возвращал нормальную кодировку, это началось прослеживаться только в 2009той


Anatoly Podgoretsky   (2010-08-18 10:59:00) [1]

> Дмитрий Белькевич  (17.08.2010 12:22:17)  [17]

Ты не мог бы предложить, что ни будь менее болезненое.


Дмитрий Белькевич   (2010-08-17 12:22:00) [2]

Не так давно правил IdCustomHTTPServer.pas. Тоже были проблемы с кодировкой.

Долго искал концы, вылечилось так:


procedure TIdHTTPRequestInfo.DecodeAndSetParams(const AValue: String);
var
 i, j : Integer;
 s: string;
begin
 // Convert special characters
 // ampersand '&' separates values    {Do not Localize}
 // TODO: need to decode UTF-8 octets...
 Params.BeginUpdate;
 try
   Params.Clear;
   i := 1;
   while i


Сергей   (2010-08-16 15:18:00) [3]

Удалено модератором
Примечание: Создай свою тему


Encore   (2009-10-28 02:04:00) [4]

Медвежонок Пятачок- я думаю вас стоит задуматься о своих ответах. собственно нужны ли они вообще?
Anatoly Podgoretsky вам я очень очень благодарен.!!!спасибо большое, ябуду пробывать, если что нибудь получится отпишусь в теме


Медвежонок Пятачок   (2009-10-27 18:31:00) [5]

В веб браузере?

Вроде по-русски написали. В программе. В своей.


Anatoly Podgoretsky   (2009-10-27 15:44:00) [6]

Не так давно эту тему обсуждали, не помню нашли ли обходную дорогу


Anatoly Podgoretsky   (2009-10-27 15:43:00) [7]


> я совсем запутался:(

Сейчас распутаем.

В далекие, далекие времена - Борланд, известный халявшик, вместо написания своих Интернет компонент, в очередной раз решил их сменить на очередную халяву, в качестве халявы достался Инди, остальные отказали Борланду, но Инди был написан криворуко, не переносимо и вот настал очередной северный пушистый лисиц - Борланд наконец перешел на Юникод (2009) и вместо того чтобы адаптировать Инди, оставил все как есть, а у тех функции тоже были объявлены STRING!!! и вот и приплыли, не все конечно, англоязычные не пострадали, в отличии от кирилицы.


Anatoly Podgoretsky   (2009-10-27 15:31:00) [8]

Значит не судьба, Инди он попорченый в 2009, точнее он попорченый по жизни и много раньше. Смени компонент на что ни будь другое.


Encore   (2009-10-27 15:30:00) [9]

я совсем запутался:(


Encore   (2009-10-27 15:28:00) [10]

это отрывок кода...используется. нет не получилось:( страницы всегда в вин-1251


Anatoly Podgoretsky   (2009-10-27 15:20:00) [11]

Трудно сказать, поскольку idhttp1.get уже объявлен как String, а должен быть RawByteString, можно попробовать привести к RawByteString, может получится, ну и конечно не ясно, что дальше делать, ведь для мемо нужен Юникод, а решить какая кодировка у страницы не всегда возможно. В общем сначала попробуй

s: AnsiString{(N)};

s := RawByteString(idhttp1.get(' http://my.mail.ru/мойдомен/мойпас'));


И зачем в программе responseres, если оно не используется.


Encore   (2009-10-27 15:16:00) [12]

http://edn.embarcadero.com/ru/article/38582помогла статья. разобрался:)


Encore   (2009-10-27 15:09:00) [13]

я просто отрывками код выписывал, не туда строчечку в форуме запихнул) но это не то поле:) подскажите как решить тот вопрос что В 2009 string  = UnicodeString


Anatoly Podgoretsky   (2009-10-27 14:37:00) [14]

В 2009 string  = UnicodeString


Сергей М.   (2009-10-27 14:22:00) [15]

Это что за выкрутасы ?

try
..
 Post // <-- метод возбудил исключение по причине, например, нештатного разрыва соединения с сервером
..
finally
..
 Get // <-- а нам по барабану разрыв соединения ! Все равно лезем на сервер
..
end


Encore   (2009-10-27 14:10:00) [16]

оговорился Get'ом получает кривые символы)


Encore   (2009-10-27 14:09:00) [17]

В веб браузере? каким образом? дописать мета тэг в шапке? он у меня постом уже кривые символы получает


Медвежонок Пятачок   (2009-10-27 14:02:00) [18]

подскажите где поправить кодировку

в программе разумеется, где же еще.
после получения контента.


Наверх

Титульная страница Поиск, карта сайта Написать письмо