中间很多都是为别的提供数据的主要还是。从
byte[] array = new byte[100];
        receivepacket = new DatagramPacket(array, array.length);
        receivesocket.receive(receivepacket); //接收
byte data[] = receivepacket.getData();
        String received = new String(data, 0);
然后打印received里的中文是乱码

解决方案 »

  1.   

    楼主你用的String构造方法太老了吧?要么就用new String(data);系统默认字符编码
    要么就用new String(data, "GB2312");指定字符编码你原始数据是用的什么编码?
      

  2.   

    received = new String(received.getBytes("gb2312"));
      

  3.   

    先使用String.getBytes(Charset),得到原始数据的字节流,Charset为你发送时采用的编码方式,在new String(byte[],Charset)Charset为转换后的编码方式!