Android应用与Servlet通信之中文编码问题
最近在写Android APP的时候,经常碰到乱码的情况,所以在这里做一个记录。
Servlet request
APP端代码
String param = URLEncoder.encode(s, "utf-8");//s是包含中文字符的字符串
OutputStream out = connection.getOutputStream();
out.write(param.getBytes());
之前我是这么写的
out.write(s.getBytes("utf-8"));
服务器端代码
byte[] paramBytes = request.getParameter("param").getBytes("iso-8859-1");
String s = new String(paramBytes, "UTF-8");
Servlet Response
服务器端代码
OutputStream out = response.getOutputStream();
out.write(s.getBytes("UTF-8"));//s是含中文的字符串
response.setCharacterEncoding("UTF-8");
这里的原理可以参考这篇博客
Servlet 中文乱码问题及解决方案剖析
在这里做个记录,如有错误还需指正