Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];

Вниз

Post/get неверная кодировка   Найти похожие ветки 

 
Encore   (2009-10-27 13:49) [0]

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той


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

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

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


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

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


 
Encore   (2009-10-27 14:10) [3]

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


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

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

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


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

В 2009 string  = UnicodeString


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

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


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

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


 
Anatoly Podgoretsky ©   (2009-10-27 15:20) [8]

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

s: AnsiString{(N)};

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


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


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

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


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

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


 
Anatoly Podgoretsky ©   (2009-10-27 15:31) [11]

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


 
Anatoly Podgoretsky ©   (2009-10-27 15:43) [12]


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

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

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


 
Anatoly Podgoretsky ©   (2009-10-27 15:44) [13]

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


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

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

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


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

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


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

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


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

Не так давно правил 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 <= Length(AValue) do
   begin
     j := i;
     while (j <= Length(AValue)) and (AValue[j] <> "&") do {do not localize}
     begin
       Inc(j);
     end;
     s := Copy(AValue, i, j-i);
     // See RFC 1866 section 8.2.1. TP
     s := StringReplace(s, "+", " ", [rfReplaceAll]);  {do not localize}
     Params.Add(TIdURI.URLDecode(s));
     i := j + 1;
   end;
 finally
   Params.EndUpdate;
 end;
end;



     Params.Add(TIdURI.URLDecode(s, TIdTextEncoding.Default));


В другом месте, для того, что бы русский текст запихнуть в сеть:


  FClient.IOHandler.Write(MSG_START + FOwner.FCurrSendStr + MSG_END, TIdTextEncoding.Default);


Без "TIdTextEncoding.Default" запихивались "????????".

Если не лень - смотри, где инди косячит в своих потрохах.


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

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

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



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.071 c
2-1428036109
Xmen
2015-04-03 07:41
2017.01.15
Работа с файлами которых имена в Unicode.


15-1454413847
Кто б сомневался
2016-02-02 14:50
2017.01.15
Запустить с обычными правами из под проги с админ. правами


2-1432123390
Цукор5
2015-05-20 15:03
2017.01.15
Утечка?


15-1448746204
Юрий
2015-11-29 00:30
2017.01.15
С днем рождения ! 29 ноября 2015 воскресенье


1-1344667539
ExpertMQL4
2012-08-11 10:45
2017.01.15
OleContainer и Drag&amp;drop





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский