估计是2面的GBK编码不同,估计是你发送的数据出的问题。其实,传递非ASCII,最好用Base64做一下编码,这样最有效。

解决方案 »

  1.   

    部分,java端的代码                  DatagramSocket   ds   =   new   DatagramSocket();
    byte[] temp = message.getBytes("gbk");
    DatagramPacket   dp   =   new   DatagramPacket(temp, message.length(),
                                          ip, port); ds.send(dp);
    ds.close();
      

  2.   

    对消息进行Base64编码,那不是更加收不到了吗?困惑~~new sun.misc.BASE64Encoder().encode(message.getBytes());这样编码的时候已经要用到gbk解码message.getBytes();然后再用什么解码发送呢?请专家再看看啊,谢谢。
      

  3.   

    刚整了一下午,就是和delphi 进行webservice通信其实你可以在java端把中文转成Base64,然后发送到delphi端delphi端经过解码,成中文自己用,如果有需要传输到java端的数据,再次把中文转成Base64,然后在java端解码就行了
      

  4.   

     本人菜鸟,不明白什么是Base64啊?是一种编码吗?怎么理解这句话“当delphi端传消息给java端”?楼主做得是什么项目呢?delphi也是一种编程语言吗?
      

  5.   

    是啊 ,delphi也是一种编程语言