Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2009, 15:03   #1
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 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;

И она не помогает, хотя раньше помогала В чем проблема ?
RIO вне форума Ответить с цитированием
Старый 30.09.2009, 17:04   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Производите get не в строку, а в поток (Tstringstream)
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 30.09.2009, 20:13   #3
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

Помоему в ИНДИ в последних версия они что-то измени с кодировкой, у при использования ихнего мультипарта при пост запросе возникли подобные проблемы, так одни с разработчиков сказал что надо вручную формировать запрс так как этот модуль они не переделывали. Сам использую 10.2.3 с немного подправленными куками.
Usov вне форума Ответить с цитированием
Старый 01.10.2009, 02:11   #4
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 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.
RIO вне форума Ответить с цитированием
Старый 01.10.2009, 10:07   #5
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

попробуй использовать то же самое и при посте
procedure Post(AURL: string; ASource, AResponseContent: TStream)
Usov вне форума Ответить с цитированием
Старый 01.10.2009, 15:40   #6
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 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;
RIO вне форума Ответить с цитированием
Старый 03.12.2009, 23:23   #7
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

Цитата:
Сообщение от RIO Посмотреть сообщение
Друзья, все решилось таким образом :

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;
Ха! А у меня не сработало! И в чем же дело?
Черничный вне форума Ответить с цитированием
Старый 04.12.2009, 17:13   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

"Не верю" (с)
Вы считаете что вашего сообщения достаточно чтобы вам дали совет ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как обновить 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