android开发字节转为String乱码问题

        PrintStream out = new PrintStream(
                    client.getOutputStream());              // 打印流输出
            out.println("啊啊");  
            System.out.println("设置完");

            BufferedInputStream buf = new BufferedInputStream(
                    client.getInputStream());       // 缓冲区读取

                        // 发送数据
            byte by[]=new byte[1024];
            /*for(int i=0;i<by.length;i++){
                by[i]=(byte) buf.read();
            }*/
               int byint = -1;
               int w = 0;
               while ((byint = buf.read()) != -1) {
                by[w] = (byte) byint;//将读取的整型转换为byte类型,并将此字节放入字节数组中。
                w++;
               }
            String s=new String(by,"UTF-8");
            System.out.println("字节流"+s);
            String sr=s.trim();
            //BufferedReader br=new BufferedReader(new InputStreamReader(buf,"UTF-8"));

            MyClientDemo.this.info.setText(sr);
            /*while((s=br.readLine())!=null){
                System.out.println("s有字符");
                System.out.println("接收到"+s);

            }*/
                // 设置文本

            out.close();                                    // 关闭输出流
            //buf.close() ;                                 // 关闭输入流
            client.close();
            无论是先把字节流转换为字符流的方式,还是把以byte的方式在String里进行转换都不行,服务端正常显示没有乱码,是UTF-8