乱码发生的原因大致上可以描述为客户端发送了UTF-8编码的数据,网络传输过程用IOS-8859-1编码传送,传回到客户端再次使用UTF-8的编码解码
下面来说request请求和response响应如何处理乱码
response乱码
A、设置服务器端的编码
response.setCharacterEncoding("utf-8”);
B、通知浏览器服务器发送的数据格式
response.setContentType("text/html;charset=utf-8”);
request乱码
post请求
request.setCharacterEncoding("utf-8");
get请求
String id = request.getParameter("id");
id = new String(id.getBytes("IOS-8859-1"),"utf-8");
另外一种方式是使用javase中的encoding和decoding类转换编码
进行编码:URLEncoder.encode(String s,”UTF-8”)
进行解码:URLDecoder.decode(String s,”UTF-8”);