第一种方法解决乱码:
接受数据的时候不要用缓冲流,直接用字符流去接收数据然后放到一个byte数组,再转换编码。
接受数据的时候不要用缓冲流,直接用字符流去接收数据然后放到一个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");