Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - idTcpServer и idTcpClient не корректное отображения русских букв.

Ответить
Настройки темы
Delphi - idTcpServer и idTcpClient не корректное отображения русских букв.

Новый участник


Сообщения: 33
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте уважаемые форумчане!
Писал сетевую программу используя idTcpServer и idTcpClient и заметил что за место русских букв отображаются вопросительные знаки.
Передаю например строку вот так: IdTCPClient1 .Socket .WriteLn('привет 123 hello');
Получаю вот так: edit1.text :=AContext .Connection .Socket .ReadLn ;
В edit1 в итоге ???123 hello. И так с любыми русскими символами.
Уже программу практически написал и тут такой косяк, помогите!!

Отправлено: 19:22, 10-05-2012

 

Новый участник


Сообщения: 40
Благодарности: 19

Профиль | Отправить PM | Цитировать


используйте ansistring
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:42, 16-05-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 33
Благодарности: 0

Профиль | Отправить PM | Цитировать


Где этот тип переменных использовать? Я вроде на прием и передачу делал.
К примеру вот простейший клиент сервер:
Код: Выделить весь код
 unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdCustomTCPServer, IdTCPServer, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, StdCtrls,IdContext ;

type
  TForm5 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    IdTCPServer1: TIdTCPServer;
    IdTCPClient1: TIdTCPClient;
    procedure IdTCPServer1Execute(AContext: TIdContext);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);
   var a:AnsiString ;
begin
 IdTCPClient1.Connect;
 a:= Edit1 .text;
 IdTCPClient1 .Socket .WriteLn(a);
  IdTCPClient1.Disconnect;
end;

procedure TForm5.IdTCPServer1Execute(AContext: TIdContext);
var b:AnsiString ;
begin
b:= AContext.Connection.Socket.ReadLn;
edit2.Text := b;

AContext .Connection .Disconnect ;


end;

end.

Отправлено: 21:58, 21-05-2012 | #3


Аватара для Nasgool

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


В Delphi, начиная с 2009 версии тип String = UnicodeString.
Indy, к сожалению, пока не умеет работать со строками Unicode, зато прекрасно работает со строками AnsiString.
Что бы получить желаемый Вами результат в коде (как на стороне клиента, так и на стороне сервера) необходимо явно указать кодовую станицу компонентам Indy при передаче/приеме строк.
Т.е. вместо:

...
ReadLn;
WriteLn(S);
...

нужно писать:

...
ReadLn(TEncoding.ANSI);
WriteLn(S, TEncoding.ANSI);
...

-------
Ну ЁмаЁ....


Отправлено: 08:39, 05-12-2012 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - idTcpServer и idTcpClient не корректное отображения русских букв.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] php вместо русских букв символы binders Вебмастеру 2 01-02-2010 18:46
Интернет - Включение русских букв в URL-адресах в IE Anakin Microsoft Windows 7 4 15-09-2009 22:37
Знаки вопросов вместо русских букв nec 3540A Мобильные ОС, смартфоны и планшеты 7 15-05-2006 21:01
Квадраты вместо русских букв Guest Программное обеспечение Linux и FreeBSD 9 12-03-2004 20:24
Win98SE и отображение русских букв Guest Microsoft Windows 95/98/Me (архив) 8 30-01-2004 09:00




 
Переход