|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Проблема с Indy 10 и русской кодировкой
При попытке передать текст от клиента к серверу, приходит нечитаемое сообщение, вместо знаков кириллицы приходят сообщения, типа: ?????????
пример программы: Код:
клиент: IdTCPClient1.Host:=HOST.Text; IdTCPClient1.Port:=StrToInt(PortNumber.Text); IdTCPClient1.Connect; IdTCPClient1.IOHandler.WriteLn('message:'+ 'бла-бла-бла'); IdTCPClient1.Disconnect; сервер Код:
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext); z:=AContext.Connection.IOHandler.ReadLn; if SameText(Copy(z, 1, 8), 'message:') then begin Delete(z, 1, 8); Memo1.Lines.Add(PChar(z)); end; как это исправить? Последний раз редактировалось Admin, 09.11.2009 в 10:40. |
#2
|
||||
|
||||
Ответ был найден:
клиент: Код:
IdTCPClient1.Host:=HOST.Text; IdTCPClient1.Port:=StrToInt(PortNumber.Text); IdTCPClient1.Connect; IdTCPClient1.IOHandler.WriteLn('message:'+ 'бла-бла-бла', TEncoding.UTF8); IdTCPClient1.Disconnect; сервер Код:
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext); var Z :WideString; begin with AContext.Connection do begin Z:=AContext.Connection.IOHandler.ReadLn(TEncoding.UTF8); if SameText(Copy(z, 1, 8), 'message:') then begin Delete(z, 1, 8); Memo1.Lines.Add(Z); end; end; end. |