|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.09.2009, 15:03 | #1 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 422
|
Проблемы с новой версией Indy
При установки новой версии Indy (на данный момент самая свежая), появились проблемы с кодировкой, то есть при получении страницы методом Get, русские и украинские буквы отображаются как знаки вопроса . . . Я использовал функцию :
function RussianToUnicode(S: string): string; var W: Word; L: Integer; PW, PR: PWord; begin PW := @S[1]; L := Length(S); SetLength(Result, L); PR := @Result[1]; while L <> 0 do begin W := PW^; case W of $C0..$DF, $E0..$FF: PR^ := W + $0350; else PR^ := W; end; Dec(L); Inc(PW); Inc(PR); end; end; И она не помогает, хотя раньше помогала В чем проблема ? |
30.09.2009, 17:04 | #2 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
Производите get не в строку, а в поток (Tstringstream)
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
30.09.2009, 20:13 | #3 |
Форумчанин
Регистрация: 29.09.2009
Сообщений: 228
|
Помоему в ИНДИ в последних версия они что-то измени с кодировкой, у при использования ихнего мультипарта при пост запросе возникли подобные проблемы, так одни с разработчиков сказал что надо вручную формировать запрс так как этот модуль они не переделывали. Сам использую 10.2.3 с немного подправленными куками.
|
01.10.2009, 02:11 | #4 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 422
|
Друзья, все решилось таким образом :
procedure TForm2.Button2Click(Sender: TObject); var ms :TMemoryStream; sl :TStringList; begin ms := TMemoryStream.Create; sl := TStringList.Create; HTTP.Get('СайтеГ', ms); ms.Seek(0, 0); sl.LoadFromStream(ms); Memo1.Text := Sl.Text; end; Но предстала еще одна проблема . . . Как получить нормальную кодировку, при пост запросе ? Последний раз редактировалось RIO; 01.10.2009 в 02:49. |
01.10.2009, 10:07 | #5 |
Форумчанин
Регистрация: 29.09.2009
Сообщений: 228
|
попробуй использовать то же самое и при посте
procedure Post(AURL: string; ASource, AResponseContent: TStream) |
01.10.2009, 15:40 | #6 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 422
|
Спасибо всем Для пост, помогло :
var Response: TStringStream; P: TStringList; begin Response := TStringStream.Create(''); P := TStringList.Create; P.Add('Параметр'); HTTP.Post('СайтеГ', P, Response); Memo1.Text := Response.DataString; P.Free; Response.Free; end; |
03.12.2009, 23:23 | #7 |
Форумчанин
Регистрация: 27.01.2007
Сообщений: 293
|
Ха! А у меня не сработало! И в чем же дело?
|
04.12.2009, 17:13 | #8 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
"Не верю" (с)
Вы считаете что вашего сообщения достаточно чтобы вам дали совет ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как обновить indy 9 на indy 10 | Пилигрим | Компоненты Delphi | 16 | 30.04.2010 10:11 |
Indy 9 против Indy 10 | OrdJONY | Свободное общение | 2 | 08.11.2008 20:28 |
Проблемы Indy 10 | OrdJONY | Работа с сетью в Delphi | 2 | 09.10.2007 23:21 |
проблемы с Indy | senalex | Работа с сетью в Delphi | 9 | 11.09.2007 12:25 |