android端和web端通信中文乱码问题

第一步:


把Android端和web端的工程编码方式都改为utf-8


第二步:
在Android端对传递的参数进行如下处理


String path ="http://"+getpath+"/KuaiDi3/BusTime_Servlet?start="+URLEncoder.encode(start, "utf-8")+"&end="+URLEncoder.encode(end, "utf-8")+"&date="+URLEncoder.encode(date, "utf-8");




第三步:


在web端对接收的参数进行如下处理
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("urf-8");
同时一定要进行如下处理,如果不进行如下处理,还是会出错的,切记!!!


String start = request.getParameter("start");


String end = request.getParameter("end");
//String end = new String(request.getParameter("end").getBytes("ISO-8859-1"),"utf_8");
String date = request.getParameter("date");
String start1 = new String(start.getBytes("ISO-8859-1"),"utf-8");
String end1 = new String(end.getBytes("ISO-8859-1"),"utf-8");

String date1 = new String(date.getBytes("ISO-8859-1"),"utf-8");

方法封装:

android端:

/*
 * 该方法把传入的字符串转码为UTF_8
 * 解决android端与web端通信字符串乱码问题
 * */
public class StringTo_UTF_8 {
public static String my_Encode(String instring)  {
String outString = null;
try {
outString = URLEncoder.encode(instring, "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return outString;
}
}

web端:

public class Web_UTF_8 {
public static String to_UTF_8(String inString){
String outString = null;
try {
outString = new String(inString.getBytes("ISO-8859-1"),"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
};


return outString;
}


}

你可能感兴趣的:(android,编码)