关于android UDP 客户端与delphi UDP服务端通讯中文乱码问题

废话不多直接上android发送代码:

        String message = “这是一个中文测试”;
<span style="white-space:pre">	</span>// 这里是重点,要将字符串进行Base64加密
        message = Base64.encodeToString(message.getBytes(), Base64.DEFAULT);
        int server_port = 12345;
        DatagramSocket s = null;
        try {
            s = new DatagramSocket();
        } catch (SocketException e) {
            e.printStackTrace();
        }
        InetAddress local = null;
        try {
            local = InetAddress.getByName(edt_ip.getText().toString());
        } catch (UnknownHostException e) {
            e.printStackTrace();
            Toast.makeText(this, "无法连接服务器!", Toast.LENGTH_SHORT).show();
        }
        int msg_length = message.length();
        byte[] messageByte = message.getBytes();
        DatagramPacket p = new DatagramPacket(messageByte, msg_length, local,
                server_port);
        try {
            s.send(p);
        } catch (Exception e) {
            Log.e("UDPTEST", e.toString());
            Toast.makeText(this, "发送失败!", Toast.LENGTH_SHORT).show();
        }
然后看delphi端接收处理:

uses EncdDecd

function IdBytesToAnsiString(ParamBytes: TIdBytes): AnsiString;
var
  i: Integer;
  S: AnsiString;
begin
  S := '';
  for i := 0 to Length(ParamBytes) - 1 do
  begin
    S := S + AnsiChar(ParamBytes[i]);
  end;
  Result := S;
end;

procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread; const AData: TIdBytes; ABinding: TIdSocketHandle);
var
  sTmp : string;
begin
  // 将接收的<span style="font-family: Arial, Helvetica, sans-serif;">TIdBytes 转换成字符串</span>
  sTmp:= IdBytesToAnsiString(AData);
  // 将字符串进行Base64解码
  Memo1.Lines.Add(DecodeString(sTmp));
end;



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值