各位,我用NMUDP写了个UDP通信的程序,但是我发现在传送UTF-8字符时会乱码
代码如下
发送方:
var
       tmp:string;
       c:array[0..10230] of char;
       i:integer;
begin
        tmp:='测试';
        tmp:=      UTF8Encode (tmp);
        NMUDP1.RemoteHost:='192.168.3.222';
        NMUDP1.RemotePort:=12581;
        i:= length(tmp);
        NMUDP1.SendBuffer(tmp[1],i);
end接收方:
       var
         c:array[0..10230] of char;
          s:string;
       begin
             NMUDP1.ReadBuffer(c,NumberBytes);
             s:=c;
             s:= UTF8Decode (s);
             showmessage(s);
        end;

解决方案 »

  1.   

    c这个数组需要初始化,用ZeroMemory、FillChar都可以。
      

  2.   

    你收包的方式换下看看行不  RevDataSize :=AData.Read(UdpRevBuff,sizeof(UdpRevBuff));
                            for i := 1 to RevDataSize do
                           s := s + char(UdpRevBuff[i-1]);
      

  3.   

    delphi 2007 好工具。我决定他来做我的硕士论文