android中处理中文乱码和中文部分乱码

1.第一种情况:
  服务器与客户端编码不统一造成中文乱码,当服务器返回数据是UTF-8格式时,客户端在读取输入流时,需要将其转换成UTF-8格式,如下是客户端部分代码:
  //设置URL并且打开连接
  url=new URL("http://192.168.1.7:8080/exa/zh_cn");
  httpurlconnection=(HttpURLConnection)url.openConnection();
  //得到输入流并转换为字符串
  inputStream=httpurlconnection.getInputStream();
  String strResult="";
  byte[]b=new byte[1024];
  int i=0;
  while((i=inputStream.read(b))!=-1){
    strResult+=new String(b,"utf-8");//第二个参数的变化会是中文变为乱码
    b=new byte[1024];
  }
  //显示到控件上
  textView_1.setText(strResult);
2.第二种情况:
  如下代码:
  inputStream=this.getAssets().open("test.text");
  byte buffer[]=new byte[100];//把字节的数组直接设置成输入流的长度一次性读取,避免乱码
  StringBuffer sb=new StringBuffer();
  int i=0;
  while((i=inputStream.read(buffer))!=1){
    sb.append(new String(buffer,0,i));
  }
  textView_1.setText(sb.toString());
 还可以用字符的方式读取:
  inputStream=this.getAssets().open("test.text");
  StringBuffer sb=new StringBuffer();
  InputStreamReader isr=new InputStreamReader(inputStream);
  char buf[]=new char[20];
  int nBufLen=isr.read(buf);
  while(nBufLen!=-1){
    sb.append(new String(buf,0,nBufLen));
  } 
  textView_1.setText(toString());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值