indy 10 UDP 发消息 中文乱码 求救
服务端接收消息代码
procedure TForm2.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
AData: TBytes; ABinding: TIdSocketHandle);
begin
memo1.Lines.Add(ABinding.PeerIP+' 来消息 ……' );
memo1.Lines.Add(BytesToString(AData));
end;
客户端发送代码就一个
IdUDPClient1.Send(memo1.Text);
程序运行后,英文和数字没问题,就是中文会出现乱码
我用的是2010 的indy 10 版本,哪位大侠能教我如何解决?
曾经用过 UTF8 ,结果光是加码了,不知道解码,服务端不知道怎么写了
IdUDPClient1.Send(memo1.Text,TEncoding.UTF8);
希望能给出关键的代码,叩谢!!!!
[解决办法]
我自己顶顶自己
[解决办法]
procedure TForm1.Button1Click(Sender: TObject);
begin
IdUDPClient1.Send(Memo1.Text,TEncoding.UTF8);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
IdUDPServer1.Active :=true ;
IdUDPClient1.Active :=true ;
end;
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
AData: TBytes; ABinding: TIdSocketHandle);
var
RecString:string;
i:Integer;
begin
RecString:=StringOf(AData);
Memo2.Lines.Add('收到数据:'+Trim(RecString));
end;
end.
[解决办法]
终于搞定了,突发奇想的就搞定了
接受信息代码
memo1.Lines.Add(BytesToString(AData,TEncoding.UTF8));
中文不再乱码
[解决办法]
这么说只能来接分了。。嘿嘿
[解决办法]
我也接分 顺便把你的经验记住
[解决办法]
我在进行indy10.5.7这个版本进行idTCPClient及idTCPServer进行编程时同样汉字收发时会产生乱码,我在单元的里引用了 HTTPApp 单元,
在发的时候这样写IdTCPClient.IOHandler.WriteLn(HTTPEncode(edtMsg.Text));
在收的时候这样写HTTPDecode(IdTCPClient.IOHandler.ReadLn); 就可以用汉字进行通讯了