第一种方法解决乱码:
接受数据的时候不要用缓冲流,直接用字符流去接收数据然后放到一个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);
}
}
第二种方法解决乱码:
sb = new StringBuffer();
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
BufferedReader br = new BufferedReader(
new InputStreamReader(is,"GB2312"));
String data = "";
while ((data = br.readLine()) != null) {
sb.append(data);
}
String result = sb.toString();
第三种方法:
byte[] buffer = string.getBytes(“ISO8859_1”);
xxxxx
ssss.toString(“EUC_CN”);
原文:https://blog.csdn.net/forlong401/article/details/6624165