Android 乱码

第一种方法解决乱码:
接受数据的时候不要用缓冲流,直接用字符流去接收数据然后放到一个byte数组,再转换编码。

 int i =-1;
     int count = 0;
     while((i = is.read())!=-1){
      Log.e("data", i+"");
      //baos.write(buf, 0, i);
      buf[count]= (byte) i;
      count++;
      if(count > 10){
       data =  new String(buf, "GB2312");
       Log.e("get message", "data:"+data);
       messageHandler.sendEmptyMessage(0);
      }
     }

第二种方法解决乱码:

  1. sb = new StringBuffer();  
  2.                     HttpEntity entity = response.getEntity();  
  3.                     InputStream is = entity.getContent();  
  4.                     BufferedReader br = new BufferedReader(  
  5.                             new InputStreamReader(is,"GB2312"));  
  6.                     String data = "";  
  7.   
  8.                     while ((data = br.readLine()) != null) {  
  9.                         sb.append(data);  
  10.                     }  
  11.                     String result = sb.toString(); 

第三种方法:

byte[] buffer = string.getBytes("ISO8859_1");

xxxxx

ssss.toString("EUC_CN");

你可能感兴趣的:(android,String,null,buffer,byte)