![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Indy invalid code page
Квэнди © (2008-12-17 22:25:00)Здравствуйте. Использую D2009 и Indy 10.2.5
На моем компьютере, на котором,собственно, и стоит delphi этот код выполняется как и раньше абсолютно нормально:
Idhttp.get(<некая страница>);
На компьютере с установленной ОС Windows XP Embeded при выполнении данного метод возникает ошибка "Invalid code page"
Подобная ошибка до этого возникала и в IdTcpClient на том же компьютере: IdTcpClient.OIHandler.writeln('что-то'); но тогда проблема решилась указанием encoding:
IdTcpClient.IOHandler.writeln('что-то',en8bit);
но в методе GET компонента IdHttp нет возможности указать encoding, не подскажите из- за чего возникает ошиба и каким образом её избежать/устранить ?
Квэнди (2008-12-19 14:57:00) [1]Проблема разрешилась:
https://forums.codegear.com/thread.jspa?threadID=8925
Всем болшое спасибо )
Квэнди (2008-12-19 11:37:00) [2]уже не актуально. Переписал под ICS
Сергей М. (2008-12-18 19:51:00) [3]Заключи Get в блок try..except, поймай исключение и приведи сюда его класс..
Квэнди (2008-12-18 17:14:00) [4]Отображается окно с ошибкой "Invalid Code page"
Сергей М. (2008-12-18 17:12:00) [5]
> возникает ошибка
Ошибка или исключение?
Квэнди (2008-12-18 09:49:00) [6]На сколько я понимаю с обычным Tstream не получится: "method seek not implemented",а при попытке использовать tmemorystream ошибка таже (
var s:tmemorystream;
begin
s:=tmemorystream.Create;
IdHTTP1.Get(' http://delphimaster.ru/cgi-bin/forum.pl?id=1229541935&n=4',s);
...
Eraser (2008-12-18 04:18:00) [7]> [0] Квэнди © (17.12.08 22:25)
ошибка потому что не сработало автоопределение кодировки думаю (см. ContentTypeStrToEncoding).
вот доступные варианты метода
procedure Get(AURL: string; AResponseContent: TStream); overload;
procedure Get(AURL: string; AResponseContent: TStream; AIgnoreReplies: array of SmallInt);
overload;
function Get(AURL: string): string; overload;
function Get(AURL: string; AIgnoreReplies: array of SmallInt): string; overload;
советую использовать 1.
вообще в юникодовской делфи при работе с indy лучше избегать явной передачи строк, а использовать TBytes или TStream.